from brightway2 import *
import os # to use "operating system dependent functionality"
import numpy as np # "the fundamental package for scientific computing with Python"
import pandas as pd # "high-performance, easy-to-use data structures and data analysis tools" for Python
import matplotlib.pyplot as plt
from scipy.stats import rankdata
import string
import pickle
import seaborn as sns
import matplotlib as mpl
%matplotlib inline
from matplotlib.ticker import ScalarFormatter
projects.set_current('pLCA_RegAC_results_and_visualisation')
# Import the specified BW2Package for the LCIA method IMPACTWorld+ file from the given path or import it to the same file location as this notebook
package_world_plus= BW2Package.import_file("Brightway_IW_damage_1_46_and_midpoint_1_28.bw2package")
# The water use method needs to be updated due to the fact that it was wrongly created.
# Filter the methods list to find the desired method for 'IMPACTWorld+ (Default_Recommended_Midpoint 1.28)'.
# Then, load the method and its characterization factors into the WS_lst variable.
IWP_mid = [m for m in methods if 'IMPACTWorld+ (Default_Recommended_Midpoint 1.28)' in m[0]]
WS = Method(IWP_mid[9])
WS_lst = WS.load()
# Define and remove certain characterization factors (CF) from the WS_lst.
ex_CF = (('biosphere3', '2404b41a-2eed-4e9d-8ab6-783946fdf5d6'), -42.95353086694035)
ex_CF_ocean = (('biosphere3', '4f0f15b3-b227-4cdc-b0b3-6412d55695d5'), 0)
WS_lst.remove(ex_CF)
WS_lst.remove(ex_CF_ocean)
# Define a new characterization factor and add it to the WS_lst.
new_CF = (('biosphere3', '8c1494a5-4987-4715-aa2d-1908c495f4eb'), 42.95353086694035)
WS_lst.append(new_CF)
# Create a new Method instance for the updated 'Water scarcity' method.
# Register the new method and write the updated characterization factors to it.
new_WS = Method(('IMPACTWorld+ (Default_Recommended_Midpoint 1.28)', 'Water scarcity'))
new_WS.register()
new_WS.write(WS_lst)
Assigning methods and units required for axis labels in visualisations
IWP_mid = [m for m in methods if 'IMPACTWorld+ (Default_Recommended_Midpoint 1.28)' in m[0]]
units_IWP_mid=['kg CO2eq.','kg CO2eq.','MJ dep.','kg dep.', 'kg NMVOCeq.','kg CFC-11eq.','CTUe','CTUh','CTUh','m3eq.','kg SO2eq.','kg SO2eq.','kg PO4eq.','kg Neq.', 'm2eq.', 'm2eq*yr.', 'kg PM2.5eq.', 'Bq C14eq.']
IWP_end = [m for m in methods if 'IMPACTWorld+ (Default_Recommended_Damage 1.46)' in m[0]]
In this section we import the dataframes with deterministic results established in the "Calculation_of_deterministic_results" notebooks
opening pickles with deterministic midpoint dataframes
#Typical mission
with open(f"deterministic_midpoint_typ_2030.pkl", "rb") as f:
var = pickle.load(f)
deterministic_midpoint_typ_2030=var
with open(f"deterministic_midpoint_typ_2040.pkl", "rb") as f:
var = pickle.load(f)
deterministic_midpoint_typ_2040=var
with open(f"deterministic_midpoint_typ_2050.pkl", "rb") as f:
var = pickle.load(f)
deterministic_midpoint_typ_2050=var
#Design mission
with open(f"deterministic_midpoint_des_2030.pkl", "rb") as f:
var = pickle.load(f)
deterministic_midpoint_des_2030=var
with open(f"deterministic_midpoint_des_2040.pkl", "rb") as f:
var = pickle.load(f)
deterministic_midpoint_des_2040=var
with open(f"deterministic_midpoint_typ_2050.pkl", "rb") as f:
var = pickle.load(f)
deterministic_midpoint_des_2050=var
opening pickles with deterministic endpoint dataframes
#Typical mission
with open(f"deterministic_endpoint_typ_2030.pkl", "rb") as f:
var = pickle.load(f)
deterministic_endpoint_typ_2030=var
with open(f"deterministic_endpoint_typ_2040.pkl", "rb") as f:
var = pickle.load(f)
deterministic_endpoint_typ_2040=var
with open(f"deterministic_endpoint_typ_2050.pkl", "rb") as f:
var = pickle.load(f)
deterministic_endpoint_typ_2050=var
#Design mission
with open(f"deterministic_endpoint_des_2030.pkl", "rb") as f:
var = pickle.load(f)
deterministic_endpoint_des_2030=var
with open(f"deterministic_endpoint_des_2040.pkl", "rb") as f:
var = pickle.load(f)
deterministic_endpoint_des_2040=var
with open(f"deterministic_endpoint_des_2050.pkl", "rb") as f:
var = pickle.load(f)
deterministic_endpoint_des_2050=var
with open(f"endpoint_stages_contribution_HH_2030.pkl", "rb") as f:
var = pickle.load(f)
endpoint_stages_contribution_HH_2030=var
endpoint_stages_contribution_HH_2030
endpoint_stages_contribution_HH_2030['H2']=0
endpoint_stages_contribution_HH_2030['Year']='2030'
with open(f"endpoint_stages_contribution_HH_2040.pkl", "rb") as f:
var = pickle.load(f)
endpoint_stages_contribution_HH_2040=var
endpoint_stages_contribution_HH_2040
endpoint_stages_contribution_HH_2040['Year']='2040'
with open(f"endpoint_stages_contribution_HH_2050.pkl", "rb") as f:
var = pickle.load(f)
endpoint_stages_contribution_HH_2050=var
endpoint_stages_contribution_HH_2050
endpoint_stages_contribution_HH_2050['Year']='2050'
with open(f"endpoint_stages_contribution_EQ_2030.pkl", "rb") as f:
var = pickle.load(f)
endpoint_stages_contribution_EQ_2030=var
endpoint_stages_contribution_EQ_2030
endpoint_stages_contribution_EQ_2030['H2']=0
endpoint_stages_contribution_EQ_2030['Year']='2030'
with open(f"endpoint_stages_contribution_EQ_2040.pkl", "rb") as f:
var = pickle.load(f)
endpoint_stages_contribution_EQ_2040=var
endpoint_stages_contribution_EQ_2040
endpoint_stages_contribution_EQ_2040['Year']='2040'
with open(f"endpoint_stages_contribution_EQ_2050.pkl", "rb") as f:
var = pickle.load(f)
endpoint_stages_contribution_EQ_2050=var
endpoint_stages_contribution_EQ_2050
endpoint_stages_contribution_EQ_2050['Year']='2050'
In this section we import the results of the Monte Carlo simulations established in the "Calculation_of_probabilistic_results" notebooks, and rearange them into dataframes
creating functions that rearange Monte Carlo results into dataframes
def Monte_Carlo_dataframing(names_year, df_results,i,j,a,b,level,n_iterations):
for k in range(len(names_year)):
name_split = str(list(names_year.keys())[k]).split('_')
#Mission
df_results.loc[a:b, "Mission"]=name_split[0]
#Configuration
df_results.loc[a:b, "Configuration"]=name_split[1]
#Fuel
df_results.loc[a:b, "Fuel"]=name_split[2]
#Scenario
df_results.loc[a:b, "Scenario"]=name_split[3]
#Year
df_results.loc[a:b, "Year"]=name_split[4]
#Impact Level
#Midpoint
if level =='midpoint':
# 18 categories so 18*n_iteration results
T=(18*n_iterations)-1
#Categories and Units
for u in range(18):
df_results.loc[i:j, "Unit"]=units_IWP_mid[u]
df_results.loc[i:j, "Category"]=str(IWP_mid[u][1])
df_results.loc[i:j, "Impact Level"]='Midpoint'
i=j+1
j=i+(n_iterations-1)
#Endpoint
if level=='endpoint':
# 27 categories so 27*n_iteration results
T=27*n_iterations-1
#Categories
for v in range(27):
df_results.loc[i:j, "Category"]=str(IWP_end[v][1])
df_results.loc[i:j, "Impact Level"]='Endpoint'
#Units
if df_results.loc[i:j, "Category"].isin(['Climate change, human health, short term', "Climate change, human health, long term", 'Water availability, human health', 'Photochemical oxidant formation', 'Ionizing radiation, human health', 'Ozone layer depletion', 'Human toxicity cancer, short term', 'Human toxicity cancer, long term', 'Human toxicity non-cancer, short term', 'Human toxicity non-cancer, long term', 'Particulate matter formation']).sum():
df_results.loc[i:j, "Unit"]='DALY'
else:
df_results.loc[i:j, "Unit"]='PDF*m2*year'
i=j+1
j=i+(n_iterations-1)
#Values
df_results.loc[a:b, "Value"]=np.reshape(names_year[list(names_year.keys())[k]],(T+1))
a=b+1
b=a+T
return i,j,a,b
#summing function for short term damages endpoint
def Monte_Carlo_endpoint_damage_sums_ST(MC_result_aircraft_endpoint, name, n_iterations):
endpoint= pd.DataFrame(index=[index[1] for index in IWP_end], columns=range(n_iterations))
endpoint.loc[:]=MC_result_aircraft_endpoint
cols_HH_ST = ["Climate change, human health, short term",'Water availability, human health','Photochemical oxidant formation','Ionizing radiation, human health','Ozone layer depletion','Human toxicity cancer, short term','Human toxicity non-cancer, short term','Particulate matter formation']
cols_EQ_ST =['Climate change, ecosystem quality, short term','Marine acidification, short term','Land occupation, biodiversity','Water availability, freshwater ecosystem','Water availability, terrestrial ecosystem','Thermally polluted water','Freshwater ecotoxicity, short term','Freshwater acidification','Terrestrial acidification','Freshwater eutrophication','Marine eutrophication','Land transformation, biodiversity','Ionizing radiation, ecosystem quality'] #11 categories in HH
# HH categories
endpoint_sum_HH=endpoint.loc[cols_HH_ST]
endpoint_sum_HH
#16 categories in EQ
endpoint_sum_EQ=endpoint.loc[cols_EQ_ST]
endpoint_sum_EQ
sum_EQ=endpoint_sum_EQ.sum(0)
sum_HH=endpoint_sum_HH.sum(0)
#pd.DataFrame([sum_EQ, sum_HH], columns=["EQ", "HH"])
df = pd.DataFrame(sum_EQ, columns=["EQ"]).join(sum_HH.rename("HH")).melt(var_name="Damage", value_name="Value")
df["Configuration"] = name
return df
#opening pickeled MC results for 2030 typical
with open(f"MC_typical_midpoint_2030.pkl", "rb") as f:
var_typical_midpoint_2030 = pickle.load(f)
r_typ_aircraft_conv_kero_NDC_2030,r_typ_aircraft_conv_kero_Base_2030,r_typ_aircraft_conv_kero_PkBudg500_2030,r_typ_aircraft_GT_bat_kero_NDC_2030, r_typ_aircraft_GT_bat_kero_Base_2030,r_typ_aircraft_GT_bat_kero_PkBudg500_2030,r_typ_aircraft_conv_AAF_NDC_2030,r_typ_aircraft_conv_AAF_Base_2030,r_typ_aircraft_conv_AAF_PkBudg500_2030,r_typ_aircraft_GT_bat_AAF_NDC_2030,r_typ_aircraft_GT_bat_AAF_Base_2030,r_typ_aircraft_GT_bat_AAF_PkBudg500_2030,r_typ_aircraft_conv_ILUC_NDC_2030,r_typ_aircraft_GT_bat_ILUC_NDC_2030= var_typical_midpoint_2030
names_typ_midpoint_2030={'typical_conventional_kerosene_NDC_2030':r_typ_aircraft_conv_kero_NDC_2030,
'typical_conventional_kerosene_Base_2030':r_typ_aircraft_conv_kero_Base_2030,
'typical_conventional_kerosene_PkBudg500_2030':r_typ_aircraft_conv_kero_PkBudg500_2030,
'typical_GTbat_kerosene_NDC_2030':r_typ_aircraft_GT_bat_kero_NDC_2030,
'typical_GTbat_kerosene_Base_2030':r_typ_aircraft_GT_bat_kero_Base_2030,
'typical_GTbat_kerosene_PkBudg500_2030':r_typ_aircraft_GT_bat_kero_PkBudg500_2030,
'typical_conventional_AAF_NDC_2030':r_typ_aircraft_conv_AAF_NDC_2030,
'typical_conventional_AAF_Base_2030':r_typ_aircraft_conv_AAF_Base_2030,
'typical_conventional_AAF_PkBudg500_2030':r_typ_aircraft_conv_AAF_PkBudg500_2030,
'typical_GTbat_AAF_NDC_2030':r_typ_aircraft_GT_bat_AAF_NDC_2030,
'typical_GTbat_AAF_Base_2030':r_typ_aircraft_GT_bat_AAF_Base_2030,
'typical_GTbat_AAF_PkBudg500_2030':r_typ_aircraft_GT_bat_AAF_PkBudg500_2030,
'typical_conventional_ILUC_NDC_2030':r_typ_aircraft_conv_ILUC_NDC_2030,
'typical_GTbat_ILUC_NDC_2030':r_typ_aircraft_GT_bat_ILUC_NDC_2030}
#opening pickeled MC results for 2040 typical
with open(f"MC_typical_midpoint_2040.pkl", "rb") as f:
var_typical_midpoint_2040 = pickle.load(f)
r_typ_aircraft_conv_kero_NDC_2040,r_typ_aircraft_conv_kero_Base_2040,r_typ_aircraft_conv_kero_PkBudg500_2040,r_typ_aircraft_GT_bat_kero_NDC_2040,r_typ_aircraft_GT_bat_kero_Base_2040,r_typ_aircraft_GT_bat_kero_PkBudg500_2040,r_typ_aircraft_conv_AAF_NDC_2040,r_typ_aircraft_conv_AAF_Base_2040,r_typ_aircraft_conv_AAF_PkBudg500_2040,r_typ_aircraft_GT_bat_AAF_NDC_2040,r_typ_aircraft_GT_bat_AAF_Base_2040,r_typ_aircraft_GT_bat_AAF_PkBudg500_2040,r_typ_aircraft_PEMFC_bat_NDC_2040,r_typ_aircraft_PEMFC_bat_Base_2040,r_typ_aircraft_PEMFC_bat_PkBudg500_2040,r_typ_aircraft_conv_ILUC_NDC_2040,r_typ_aircraft_GT_bat_ILUC_NDC_2040= var_typical_midpoint_2040
names_typ_midpoint_2040={'typical_conventional_kerosene_NDC_2040':r_typ_aircraft_conv_kero_NDC_2040,
'typical_conventional_kerosene_Base_2040':r_typ_aircraft_conv_kero_Base_2040,
'typical_conventional_kerosene_PkBudg500_2040':r_typ_aircraft_conv_kero_PkBudg500_2040,
'typical_GTbat_kerosene_NDC_2040':r_typ_aircraft_GT_bat_kero_NDC_2040,
'typical_GTbat_kerosene_Base_2040':r_typ_aircraft_GT_bat_kero_Base_2040,
'typical_GTbat_kerosene_PkBudg500_2040':r_typ_aircraft_GT_bat_kero_PkBudg500_2040,
'typical_conventional_AAF_NDC_2040':r_typ_aircraft_conv_AAF_NDC_2040,
'typical_conventional_AAF_Base_2040':r_typ_aircraft_conv_AAF_Base_2040,
'typical_conventional_AAF_PkBudg500_2040':r_typ_aircraft_conv_AAF_PkBudg500_2040,
'typical_GTbat_AAF_NDC_2040':r_typ_aircraft_GT_bat_AAF_NDC_2040,
'typical_GTbat_AAF_Base_2040':r_typ_aircraft_GT_bat_AAF_Base_2040,
'typical_GTbat_AAF_PkBudg500_2040':r_typ_aircraft_GT_bat_AAF_PkBudg500_2040,
'typical_PEMFCbat_h2_NDC_2040':r_typ_aircraft_PEMFC_bat_NDC_2040,
'typical_PEMFCbat_h2_Base_2040':r_typ_aircraft_PEMFC_bat_Base_2040,
'typical_PEMFCbat_h2_PkBudg500_2040':r_typ_aircraft_PEMFC_bat_PkBudg500_2040,
'typical_conventional_ILUC_NDC_2040':r_typ_aircraft_conv_ILUC_NDC_2040,
'typical_GTbat_ILUC_NDC_2040':r_typ_aircraft_GT_bat_ILUC_NDC_2040}
#opening pickeled MC results for 2050 typical
with open(f"MC_typical_midpoint_2050.pkl", "rb") as f:
var_typical_midpoint_2050 = pickle.load(f)
r_typ_aircraft_conv_kero_NDC_2050,r_typ_aircraft_conv_kero_Base_2050,r_typ_aircraft_conv_kero_PkBudg500_2050,r_typ_aircraft_conv_AAF_NDC_2050,r_typ_aircraft_conv_AAF_Base_2050,r_typ_aircraft_conv_AAF_PkBudg500_2050,r_typ_aircraft_PEMFC_bat_NDC_2050,r_typ_aircraft_PEMFC_bat_Base_2050,r_typ_aircraft_PEMFC_bat_PkBudg500_2050,r_typ_aircraft_SOFC_bat_NDC_2050,r_typ_aircraft_SOFC_bat_Base_2050,r_typ_aircraft_SOFC_bat_PkBudg500_2050,r_typ_aircraft_conv_ILUC_NDC_2050=var_typical_midpoint_2050
names_typ_midpoint_2050={'typical_conventional_kerosene_NDC_2050':r_typ_aircraft_conv_kero_NDC_2050,
'typical_conventional_kerosene_Base_2050':r_typ_aircraft_conv_kero_Base_2050,
'typical_conventional_kerosene_PkBudg500_2050':r_typ_aircraft_conv_kero_PkBudg500_2050,
'typical_conventional_AAF_NDC_2050':r_typ_aircraft_conv_AAF_NDC_2050,
'typical_conventional_AAF_Base_2050':r_typ_aircraft_conv_AAF_Base_2050,
'typical_conventional_AAF_PkBudg500_2050':r_typ_aircraft_conv_AAF_PkBudg500_2050,
'typical_PEMFCbat_h2_NDC_2050':r_typ_aircraft_PEMFC_bat_NDC_2050,
'typical_PEMFCbat_h2_Base_2050':r_typ_aircraft_PEMFC_bat_Base_2050,
'typical_PEMFCbat_h2_PkBudg500_2050':r_typ_aircraft_PEMFC_bat_PkBudg500_2050,
'typical_SOFCbat_h2_NDC_2050':r_typ_aircraft_SOFC_bat_NDC_2050,
'typical_SOFCbat_h2_Base_2050':r_typ_aircraft_SOFC_bat_Base_2050,
'typical_SOFCbat_h2_PkBudg500_2050':r_typ_aircraft_SOFC_bat_PkBudg500_2050,
'typical_conventional_ILUC_NDC_2050':r_typ_aircraft_conv_ILUC_NDC_2050,}
#opening pickeled MC results for 2030 design
with open(f"MC_design_midpoint_2030.pkl", "rb") as f:
var_design_midpoint_2030 = pickle.load(f)
r_des_aircraft_conv_kero_NDC_2030,r_des_aircraft_conv_kero_Base_2030,r_des_aircraft_conv_kero_PkBudg500_2030,r_des_aircraft_GT_bat_kero_NDC_2030, r_des_aircraft_GT_bat_kero_Base_2030,r_des_aircraft_GT_bat_kero_PkBudg500_2030,r_des_aircraft_conv_AAF_NDC_2030,r_des_aircraft_conv_AAF_Base_2030,r_des_aircraft_conv_AAF_PkBudg500_2030,r_des_aircraft_GT_bat_AAF_NDC_2030,r_des_aircraft_GT_bat_AAF_Base_2030,r_des_aircraft_GT_bat_AAF_PkBudg500_2030,r_des_aircraft_conv_ILUC_NDC_2030,r_des_aircraft_GT_bat_ILUC_NDC_2030= var_design_midpoint_2030
names_des_midpoint_2030={'design_conventional_kerosene_NDC_2030':r_des_aircraft_conv_kero_NDC_2030,
'design_conventional_kerosene_Base_2030':r_des_aircraft_conv_kero_Base_2030,
'design_conventional_kerosene_PkBudg500_2030':r_des_aircraft_conv_kero_PkBudg500_2030,
'design_GTbat_kerosene_NDC_2030':r_des_aircraft_GT_bat_kero_NDC_2030,
'design_GTbat_kerosene_Base_2030':r_des_aircraft_GT_bat_kero_Base_2030,
'design_GTbat_kerosene_PkBudg500_2030':r_des_aircraft_GT_bat_kero_PkBudg500_2030,
'design_conventional_AAF_NDC_2030':r_des_aircraft_conv_AAF_NDC_2030,
'design_conventional_AAF_Base_2030':r_des_aircraft_conv_AAF_Base_2030,
'design_conventional_AAF_PkBudg500_2030':r_des_aircraft_conv_AAF_PkBudg500_2030,
'design_GTbat_AAF_NDC_2030':r_des_aircraft_GT_bat_AAF_NDC_2030,
'design_GTbat_AAF_Base_2030':r_des_aircraft_GT_bat_AAF_Base_2030,
'design_GTbat_AAF_PkBudg500_2030':r_des_aircraft_GT_bat_AAF_PkBudg500_2030,
'design_conventional_ILUC_NDC_2030':r_des_aircraft_conv_ILUC_NDC_2030,
'design_GTbat_ILUC_NDC_2030':r_des_aircraft_GT_bat_ILUC_NDC_2030}
#opening pickeled MC results for 2040 design
with open(f"MC_design_midpoint_2040.pkl", "rb") as f:
var_design_midpoint_2040 = pickle.load(f)
r_des_aircraft_conv_kero_NDC_2040,r_des_aircraft_conv_kero_Base_2040,r_des_aircraft_conv_kero_PkBudg500_2040,r_des_aircraft_GT_bat_kero_NDC_2040,r_des_aircraft_GT_bat_kero_Base_2040,r_des_aircraft_GT_bat_kero_PkBudg500_2040,r_des_aircraft_conv_AAF_NDC_2040,r_des_aircraft_conv_AAF_Base_2040,r_des_aircraft_conv_AAF_PkBudg500_2040,r_des_aircraft_GT_bat_AAF_NDC_2040,r_des_aircraft_GT_bat_AAF_Base_2040,r_des_aircraft_GT_bat_AAF_PkBudg500_2040,r_des_aircraft_PEMFC_bat_NDC_2040,r_des_aircraft_PEMFC_bat_Base_2040,r_des_aircraft_PEMFC_bat_PkBudg500_2040,r_des_aircraft_conv_ILUC_NDC_2040,r_des_aircraft_GT_bat_ILUC_NDC_2040= var_design_midpoint_2040
names_des_midpoint_2040={'design_conventional_kerosene_NDC_2040':r_des_aircraft_conv_kero_NDC_2040,
'design_conventional_kerosene_Base_2040':r_des_aircraft_conv_kero_Base_2040,
'design_conventional_kerosene_PkBudg500_2040':r_des_aircraft_conv_kero_PkBudg500_2040,
'design_GTbat_kerosene_NDC_2040':r_des_aircraft_GT_bat_kero_NDC_2040,
'design_GTbat_kerosene_Base_2040':r_des_aircraft_GT_bat_kero_Base_2040,
'design_GTbat_kerosene_PkBudg500_2040':r_des_aircraft_GT_bat_kero_PkBudg500_2040,
'design_conventional_AAF_NDC_2040':r_des_aircraft_conv_AAF_NDC_2040,
'design_conventional_AAF_Base_2040':r_des_aircraft_conv_AAF_Base_2040,
'design_conventional_AAF_PkBudg500_2040':r_des_aircraft_conv_AAF_PkBudg500_2040,
'design_GTbat_AAF_NDC_2040':r_des_aircraft_GT_bat_AAF_NDC_2040,
'design_GTbat_AAF_Base_2040':r_des_aircraft_GT_bat_AAF_Base_2040,
'design_GTbat_AAF_PkBudg500_2040':r_des_aircraft_GT_bat_AAF_PkBudg500_2040,
'design_PEMFCbat_h2_NDC_2040':r_des_aircraft_PEMFC_bat_NDC_2040,
'design_PEMFCbat_h2_Base_2040':r_des_aircraft_PEMFC_bat_Base_2040,
'design_PEMFCbat_h2_PkBudg500_2040':r_des_aircraft_PEMFC_bat_PkBudg500_2040,
'design_conventional_ILUC_NDC_2040':r_des_aircraft_conv_ILUC_NDC_2040,
'design_GTbat_ILUC_NDC_2040':r_des_aircraft_GT_bat_ILUC_NDC_2040}
#opening pickeled MC results for 2050 design
with open(f"MC_design_midpoint_2050.pkl", "rb") as f:
var_design_midpoint_2050 = pickle.load(f)
r_des_aircraft_conv_kero_NDC_2050,r_des_aircraft_conv_kero_Base_2050,r_des_aircraft_conv_kero_PkBudg500_2050,r_des_aircraft_conv_AAF_NDC_2050,r_des_aircraft_conv_AAF_Base_2050,r_des_aircraft_conv_AAF_PkBudg500_2050,r_des_aircraft_PEMFC_bat_NDC_2050,r_des_aircraft_PEMFC_bat_Base_2050,r_des_aircraft_PEMFC_bat_PkBudg500_2050,r_des_aircraft_SOFC_bat_NDC_2050,r_des_aircraft_SOFC_bat_Base_2050,r_des_aircraft_SOFC_bat_PkBudg500_2050,r_des_aircraft_conv_ILUC_NDC_2050=var_design_midpoint_2050
names_des_midpoint_2050={'design_conventional_kerosene_NDC_2050':r_des_aircraft_conv_kero_NDC_2050,
'design_conventional_kerosene_Base_2050':r_des_aircraft_conv_kero_Base_2050,
'design_conventional_kerosene_PkBudg500_2050':r_des_aircraft_conv_kero_PkBudg500_2050,
'design_conventional_AAF_NDC_2050':r_des_aircraft_conv_AAF_NDC_2050,
'design_conventional_AAF_Base_2050':r_des_aircraft_conv_AAF_Base_2050,
'design_conventional_AAF_PkBudg500_2050':r_des_aircraft_conv_AAF_PkBudg500_2050,
'design_PEMFCbat_h2_NDC_2050':r_des_aircraft_PEMFC_bat_NDC_2050,
'design_PEMFCbat_h2_Base_2050':r_des_aircraft_PEMFC_bat_Base_2050,
'design_PEMFCbat_h2_PkBudg500_2050':r_des_aircraft_PEMFC_bat_PkBudg500_2050,
'design_SOFCbat_h2_NDC_2050':r_des_aircraft_SOFC_bat_NDC_2050,
'design_SOFCbat_h2_Base_2050':r_des_aircraft_SOFC_bat_Base_2050,
'design_SOFCbat_h2_PkBudg500_2050':r_des_aircraft_SOFC_bat_PkBudg500_2050,
'design_conventional_ILUC_NDC_2050':r_des_aircraft_conv_ILUC_NDC_2050}
#opening pickeled MC results for 2030 typical Endpoint
with open(f"MC_typical_endpoint_2030.pkl", "rb") as f:
var_typical_endpoint_2030 = pickle.load(f)
r_typ_aircraft_conv_kero_NDC_2030,r_typ_aircraft_conv_kero_Base_2030,r_typ_aircraft_conv_kero_PkBudg500_2030,r_typ_aircraft_GT_bat_kero_NDC_2030, r_typ_aircraft_GT_bat_kero_Base_2030,r_typ_aircraft_GT_bat_kero_PkBudg500_2030,r_typ_aircraft_conv_AAF_NDC_2030,r_typ_aircraft_conv_AAF_Base_2030,r_typ_aircraft_conv_AAF_PkBudg500_2030,r_typ_aircraft_GT_bat_AAF_NDC_2030,r_typ_aircraft_GT_bat_AAF_Base_2030,r_typ_aircraft_GT_bat_AAF_PkBudg500_2030,r_typ_aircraft_conv_ILUC_NDC_2030,r_typ_aircraft_GT_bat_ILUC_NDC_2030= var_typical_endpoint_2030
names_typ_endpoint_2030={'typical_conventional_kerosene_NDC_2030':r_typ_aircraft_conv_kero_NDC_2030,
'typical_conventional_kerosene_Base_2030':r_typ_aircraft_conv_kero_Base_2030,
'typical_conventional_kerosene_PkBudg500_2030':r_typ_aircraft_conv_kero_PkBudg500_2030,
'typical_GTbat_kerosene_NDC_2030':r_typ_aircraft_GT_bat_kero_NDC_2030,
'typical_GTbat_kerosene_Base_2030':r_typ_aircraft_GT_bat_kero_Base_2030,
'typical_GTbat_kerosene_PkBudg500_2030':r_typ_aircraft_GT_bat_kero_PkBudg500_2030,
'typical_conventional_AAF_NDC_2030':r_typ_aircraft_conv_AAF_NDC_2030,
'typical_conventional_AAF_Base_2030':r_typ_aircraft_conv_AAF_Base_2030,
'typical_conventional_AAF_PkBudg500_2030':r_typ_aircraft_conv_AAF_PkBudg500_2030,
'typical_GTbat_AAF_NDC_2030':r_typ_aircraft_GT_bat_AAF_NDC_2030,
'typical_GTbat_AAF_Base_2030':r_typ_aircraft_GT_bat_AAF_Base_2030,
'typical_GTbat_AAF_PkBudg500_2030':r_typ_aircraft_GT_bat_AAF_PkBudg500_2030,
'typical_conventional_ILUC_NDC_2030':r_typ_aircraft_conv_ILUC_NDC_2030,
'typical_GTbat_ILUC_NDC_2030':r_typ_aircraft_GT_bat_ILUC_NDC_2030}
#opening pickeled MC results for 2040 typical
with open(f"MC_typical_endpoint_2040.pkl", "rb") as f:
var_typical_endpoint_2040 = pickle.load(f)
r_typ_aircraft_conv_kero_NDC_2040,r_typ_aircraft_conv_kero_Base_2040,r_typ_aircraft_conv_kero_PkBudg500_2040,r_typ_aircraft_GT_bat_kero_NDC_2040,r_typ_aircraft_GT_bat_kero_Base_2040,r_typ_aircraft_GT_bat_kero_PkBudg500_2040,r_typ_aircraft_conv_AAF_NDC_2040,r_typ_aircraft_conv_AAF_Base_2040,r_typ_aircraft_conv_AAF_PkBudg500_2040,r_typ_aircraft_GT_bat_AAF_NDC_2040,r_typ_aircraft_GT_bat_AAF_Base_2040,r_typ_aircraft_GT_bat_AAF_PkBudg500_2040,r_typ_aircraft_PEMFC_bat_NDC_2040,r_typ_aircraft_PEMFC_bat_Base_2040,r_typ_aircraft_PEMFC_bat_PkBudg500_2040,r_typ_aircraft_conv_ILUC_NDC_2040,r_typ_aircraft_GT_bat_ILUC_NDC_2040= var_typical_endpoint_2040
names_typ_endpoint_2040={'typical_conventional_kerosene_NDC_2040':r_typ_aircraft_conv_kero_NDC_2040,
'typical_conventional_kerosene_Base_2040':r_typ_aircraft_conv_kero_Base_2040,
'typical_conventional_kerosene_PkBudg500_2040':r_typ_aircraft_conv_kero_PkBudg500_2040,
'typical_GTbat_kerosene_NDC_2040':r_typ_aircraft_GT_bat_kero_NDC_2040,
'typical_GTbat_kerosene_Base_2040':r_typ_aircraft_GT_bat_kero_Base_2040,
'typical_GTbat_kerosene_PkBudg500_2040':r_typ_aircraft_GT_bat_kero_PkBudg500_2040,
'typical_conventional_AAF_NDC_2040':r_typ_aircraft_conv_AAF_NDC_2040,
'typical_conventional_AAF_Base_2040':r_typ_aircraft_conv_AAF_Base_2040,
'typical_conventional_AAF_PkBudg500_2040':r_typ_aircraft_conv_AAF_PkBudg500_2040,
'typical_GTbat_AAF_NDC_2040':r_typ_aircraft_GT_bat_AAF_NDC_2040,
'typical_GTbat_AAF_Base_2040':r_typ_aircraft_GT_bat_AAF_Base_2040,
'typical_GTbat_AAF_PkBudg500_2040':r_typ_aircraft_GT_bat_AAF_PkBudg500_2040,
'typical_PEMFCbat_h2_NDC_2040':r_typ_aircraft_PEMFC_bat_NDC_2040,
'typical_PEMFCbat_h2_Base_2040':r_typ_aircraft_PEMFC_bat_Base_2040,
'typical_PEMFCbat_h2_PkBudg500_2040':r_typ_aircraft_PEMFC_bat_PkBudg500_2040,
'typical_conventional_ILUC_NDC_2040':r_typ_aircraft_conv_ILUC_NDC_2040,
'typical_GTbat_ILUC_NDC_2040':r_typ_aircraft_GT_bat_ILUC_NDC_2040}
#opening pickeled MC results for 2050 typical
with open(f"MC_typical_endpoint_2050.pkl", "rb") as f:
var_typical_endpoint_2050 = pickle.load(f)
r_typ_aircraft_conv_kero_NDC_2050,r_typ_aircraft_conv_kero_Base_2050,r_typ_aircraft_conv_kero_PkBudg500_2050,r_typ_aircraft_conv_AAF_NDC_2050,r_typ_aircraft_conv_AAF_Base_2050,r_typ_aircraft_conv_AAF_PkBudg500_2050,r_typ_aircraft_PEMFC_bat_NDC_2050,r_typ_aircraft_PEMFC_bat_Base_2050,r_typ_aircraft_PEMFC_bat_PkBudg500_2050,r_typ_aircraft_SOFC_bat_NDC_2050,r_typ_aircraft_SOFC_bat_Base_2050,r_typ_aircraft_SOFC_bat_PkBudg500_2050,r_typ_aircraft_conv_ILUC_NDC_2050=var_typical_endpoint_2050
names_typ_endpoint_2050={'typical_conventional_kerosene_NDC_2050':r_typ_aircraft_conv_kero_NDC_2050,
'typical_conventional_kerosene_Base_2050':r_typ_aircraft_conv_kero_Base_2050,
'typical_conventional_kerosene_PkBudg500_2050':r_typ_aircraft_conv_kero_PkBudg500_2050,
'typical_conventional_AAF_NDC_2050':r_typ_aircraft_conv_AAF_NDC_2050,
'typical_conventional_AAF_Base_2050':r_typ_aircraft_conv_AAF_Base_2050,
'typical_conventional_AAF_PkBudg500_2050':r_typ_aircraft_conv_AAF_PkBudg500_2050,
'typical_PEMFCbat_h2_NDC_2050':r_typ_aircraft_PEMFC_bat_NDC_2050,
'typical_PEMFCbat_h2_Base_2050':r_typ_aircraft_PEMFC_bat_Base_2050,
'typical_PEMFCbat_h2_PkBudg500_2050':r_typ_aircraft_PEMFC_bat_PkBudg500_2050,
'typical_SOFCbat_h2_NDC_2050':r_typ_aircraft_SOFC_bat_NDC_2050,
'typical_SOFCbat_h2_Base_2050':r_typ_aircraft_SOFC_bat_Base_2050,
'typical_SOFCbat_h2_PkBudg500_2050':r_typ_aircraft_SOFC_bat_PkBudg500_2050,
'typical_conventional_ILUC_NDC_2050':r_typ_aircraft_conv_ILUC_NDC_2050}
#opening pickeled MC results for 2030 design Endpoint
with open(f"MC_design_endpoint_2030.pkl", "rb") as f:
var_design_endpoint_2030 = pickle.load(f)
r_des_aircraft_conv_kero_NDC_2030,r_des_aircraft_conv_kero_Base_2030,r_des_aircraft_conv_kero_PkBudg500_2030,r_des_aircraft_GT_bat_kero_NDC_2030, r_des_aircraft_GT_bat_kero_Base_2030,r_des_aircraft_GT_bat_kero_PkBudg500_2030,r_des_aircraft_conv_AAF_NDC_2030,r_des_aircraft_conv_AAF_Base_2030,r_des_aircraft_conv_AAF_PkBudg500_2030,r_des_aircraft_GT_bat_AAF_NDC_2030,r_des_aircraft_GT_bat_AAF_Base_2030,r_des_aircraft_GT_bat_AAF_PkBudg500_2030,r_des_aircraft_conv_ILUC_NDC_2030,r_des_aircraft_GT_bat_ILUC_NDC_2030= var_design_endpoint_2030
names_des_endpoint_2030={'design_conventional_kerosene_NDC_2030':r_des_aircraft_conv_kero_NDC_2030,
'design_conventional_kerosene_Base_2030':r_des_aircraft_conv_kero_Base_2030,
'design_conventional_kerosene_PkBudg500_2030':r_des_aircraft_conv_kero_PkBudg500_2030,
'design_GTbat_kerosene_NDC_2030':r_des_aircraft_GT_bat_kero_NDC_2030,
'design_GTbat_kerosene_Base_2030':r_des_aircraft_GT_bat_kero_Base_2030,
'design_GTbat_kerosene_PkBudg500_2030':r_des_aircraft_GT_bat_kero_PkBudg500_2030,
'design_conventional_AAF_NDC_2030':r_des_aircraft_conv_AAF_NDC_2030,
'design_conventional_AAF_Base_2030':r_des_aircraft_conv_AAF_Base_2030,
'design_conventional_AAF_PkBudg500_2030':r_des_aircraft_conv_AAF_PkBudg500_2030,
'design_GTbat_AAF_NDC_2030':r_des_aircraft_GT_bat_AAF_NDC_2030,
'design_GTbat_AAF_Base_2030':r_des_aircraft_GT_bat_AAF_Base_2030,
'design_GTbat_AAF_PkBudg500_2030':r_des_aircraft_GT_bat_AAF_PkBudg500_2030,
'design_conventional_ILUC_NDC_2030':r_des_aircraft_conv_ILUC_NDC_2030,
'design_GTbat_ILUC_NDC_2030':r_des_aircraft_GT_bat_ILUC_NDC_2030}
#opening pickeled MC results for 2040 design
with open(f"MC_design_endpoint_2040.pkl", "rb") as f:
var_design_endpoint_2040 = pickle.load(f)
r_des_aircraft_conv_kero_NDC_2040,r_des_aircraft_conv_kero_Base_2040,r_des_aircraft_conv_kero_PkBudg500_2040,r_des_aircraft_GT_bat_kero_NDC_2040,r_des_aircraft_GT_bat_kero_Base_2040,r_des_aircraft_GT_bat_kero_PkBudg500_2040,r_des_aircraft_conv_AAF_NDC_2040,r_des_aircraft_conv_AAF_Base_2040,r_des_aircraft_conv_AAF_PkBudg500_2040,r_des_aircraft_GT_bat_AAF_NDC_2040,r_des_aircraft_GT_bat_AAF_Base_2040,r_des_aircraft_GT_bat_AAF_PkBudg500_2040,r_des_aircraft_PEMFC_bat_NDC_2040,r_des_aircraft_PEMFC_bat_Base_2040,r_des_aircraft_PEMFC_bat_PkBudg500_2040,r_des_aircraft_conv_ILUC_NDC_2040,r_des_aircraft_GT_bat_ILUC_NDC_2040= var_design_endpoint_2040
names_des_endpoint_2040={'design_conventional_kerosene_NDC_2040':r_des_aircraft_conv_kero_NDC_2040,
'design_conventional_kerosene_Base_2040':r_des_aircraft_conv_kero_Base_2040,
'design_conventional_kerosene_PkBudg500_2040':r_des_aircraft_conv_kero_PkBudg500_2040,
'design_GTbat_kerosene_NDC_2040':r_des_aircraft_GT_bat_kero_NDC_2040,
'design_GTbat_kerosene_Base_2040':r_des_aircraft_GT_bat_kero_Base_2040,
'design_GTbat_kerosene_PkBudg500_2040':r_des_aircraft_GT_bat_kero_PkBudg500_2040,
'design_conventional_AAF_NDC_2040':r_des_aircraft_conv_AAF_NDC_2040,
'design_conventional_AAF_Base_2040':r_des_aircraft_conv_AAF_Base_2040,
'design_conventional_AAF_PkBudg500_2040':r_des_aircraft_conv_AAF_PkBudg500_2040,
'design_GTbat_AAF_NDC_2040':r_des_aircraft_GT_bat_AAF_NDC_2040,
'design_GTbat_AAF_Base_2040':r_des_aircraft_GT_bat_AAF_Base_2040,
'design_GTbat_AAF_PkBudg500_2040':r_des_aircraft_GT_bat_AAF_PkBudg500_2040,
'design_PEMFCbat_h2_NDC_2040':r_des_aircraft_PEMFC_bat_NDC_2040,
'design_PEMFCbat_h2_Base_2040':r_des_aircraft_PEMFC_bat_Base_2040,
'design_PEMFCbat_h2_PkBudg500_2040':r_des_aircraft_PEMFC_bat_PkBudg500_2040,
'design_conventional_ILUC_NDC_2040':r_des_aircraft_conv_ILUC_NDC_2040,
'design_GTbat_ILUC_NDC_2040':r_des_aircraft_GT_bat_ILUC_NDC_2040}
#opening pickeled MC results for 2050 design
with open(f"MC_design_endpoint_2050.pkl", "rb") as f:
var_design_endpoint_2050 = pickle.load(f)
r_des_aircraft_conv_kero_NDC_2050,r_des_aircraft_conv_kero_Base_2050,r_des_aircraft_conv_kero_PkBudg500_2050,r_des_aircraft_conv_AAF_NDC_2050,r_des_aircraft_conv_AAF_Base_2050,r_des_aircraft_conv_AAF_PkBudg500_2050,r_des_aircraft_PEMFC_bat_NDC_2050,r_des_aircraft_PEMFC_bat_Base_2050,r_des_aircraft_PEMFC_bat_PkBudg500_2050,r_des_aircraft_SOFC_bat_NDC_2050,r_des_aircraft_SOFC_bat_Base_2050,r_des_aircraft_SOFC_bat_PkBudg500_2050,r_des_aircraft_conv_ILUC_NDC_2050=var_design_endpoint_2050
names_des_endpoint_2050={'design_conventional_kerosene_NDC_2050':r_des_aircraft_conv_kero_NDC_2050,
'design_conventional_kerosene_Base_2050':r_des_aircraft_conv_kero_Base_2050,
'design_conventional_kerosene_PkBudg500_2050':r_des_aircraft_conv_kero_PkBudg500_2050,
'design_conventional_AAF_NDC_2050':r_des_aircraft_conv_AAF_NDC_2050,
'design_conventional_AAF_Base_2050':r_des_aircraft_conv_AAF_Base_2050,
'design_conventional_AAF_PkBudg500_2050':r_des_aircraft_conv_AAF_PkBudg500_2050,
'design_PEMFCbat_h2_NDC_2050':r_des_aircraft_PEMFC_bat_NDC_2050,
'design_PEMFCbat_h2_Base_2050':r_des_aircraft_PEMFC_bat_Base_2050,
'design_PEMFCbat_h2_PkBudg500_2050':r_des_aircraft_PEMFC_bat_PkBudg500_2050,
'design_SOFCbat_h2_NDC_2050':r_des_aircraft_SOFC_bat_NDC_2050,
'design_SOFCbat_h2_Base_2050':r_des_aircraft_SOFC_bat_Base_2050,
'design_SOFCbat_h2_PkBudg500_2050':r_des_aircraft_SOFC_bat_PkBudg500_2050,
'design_conventional_ILUC_NDC_2050':r_des_aircraft_conv_ILUC_NDC_2050}
#initialising empty DF
n_config=+len(var_typical_midpoint_2030)+len(var_typical_midpoint_2040)+len(var_typical_midpoint_2050)+len(var_design_midpoint_2030)+len(var_design_midpoint_2040)+len(var_design_midpoint_2050)
MC_results_Midpoint= pd.DataFrame(index=range(18*500*n_config),columns=['Year','Mission','Configuration','Fuel','Scenario','Impact Level', 'Category','Value', 'Unit'])
# using the function defined above to provide a dataframe with midpoint results
i,j,a,b= Monte_Carlo_dataframing(names_typ_midpoint_2030,MC_results_Midpoint,0,499,0,18*500-1,'midpoint',500)
i,j,a,b= Monte_Carlo_dataframing(names_typ_midpoint_2040,MC_results_Midpoint,i,j,a,b,'midpoint',500)
i,j,a,b= Monte_Carlo_dataframing(names_typ_midpoint_2050,MC_results_Midpoint,i,j,a,b,'midpoint',500)
i,j,a,b= Monte_Carlo_dataframing(names_des_midpoint_2030,MC_results_Midpoint,i,j,a,b,'midpoint',500)
i,j,a,b= Monte_Carlo_dataframing(names_des_midpoint_2040,MC_results_Midpoint,i,j,a,b,'midpoint',500)
i,j,a,b= Monte_Carlo_dataframing(names_des_midpoint_2050,MC_results_Midpoint,i,j,a,b,'midpoint',500)
MC_results_Midpoint=MC_results_Midpoint.replace(['typical'],'Typical')
MC_results_Midpoint=MC_results_Midpoint.replace(['design'],'Design')
MC_results_Midpoint=MC_results_Midpoint.replace(['typical'],'Typical')
MC_results_Midpoint=MC_results_Midpoint.replace(['conventional'],'Conventional')
MC_results_Midpoint=MC_results_Midpoint.replace(['GTbat'],'GT-bat')
MC_results_Midpoint=MC_results_Midpoint.replace(['PEMFCbat'],'PEMFC-bat')
MC_results_Midpoint=MC_results_Midpoint.replace(['SOFCbat'],'SOFC-bat')
MC_results_Midpoint=MC_results_Midpoint.replace(['kerosene'],'Kerosene')
MC_results_Midpoint=MC_results_Midpoint.replace(['midpoint'],'Midpoint')
MC_results_Midpoint=MC_results_Midpoint.replace(['h2'],'H2')
MC_results_Midpoint
| Year | Mission | Configuration | Fuel | Scenario | Impact Level | Category | Value | Unit | |
|---|---|---|---|---|---|---|---|---|---|
| 0 | 2030 | Typical | Conventional | Kerosene | NDC | Midpoint | Climate change, short term | 1958.098319 | kg CO2eq. |
| 1 | 2030 | Typical | Conventional | Kerosene | NDC | Midpoint | Climate change, short term | 1862.055026 | kg CO2eq. |
| 2 | 2030 | Typical | Conventional | Kerosene | NDC | Midpoint | Climate change, short term | 1788.645990 | kg CO2eq. |
| 3 | 2030 | Typical | Conventional | Kerosene | NDC | Midpoint | Climate change, short term | 1880.183990 | kg CO2eq. |
| 4 | 2030 | Typical | Conventional | Kerosene | NDC | Midpoint | Climate change, short term | 1781.427353 | kg CO2eq. |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 791995 | 2050 | Design | Conventional | ILUC | NDC | Midpoint | Ionizing radiations | 7489.063927 | Bq C14eq. |
| 791996 | 2050 | Design | Conventional | ILUC | NDC | Midpoint | Ionizing radiations | 7541.058077 | Bq C14eq. |
| 791997 | 2050 | Design | Conventional | ILUC | NDC | Midpoint | Ionizing radiations | 8196.452982 | Bq C14eq. |
| 791998 | 2050 | Design | Conventional | ILUC | NDC | Midpoint | Ionizing radiations | 10695.624471 | Bq C14eq. |
| 791999 | 2050 | Design | Conventional | ILUC | NDC | Midpoint | Ionizing radiations | 7429.042347 | Bq C14eq. |
792000 rows × 9 columns
#initialising empty DF
n_config=len(var_typical_endpoint_2030)+len(var_typical_endpoint_2040)+len(var_typical_endpoint_2050)+len(var_design_endpoint_2030)+len(var_design_endpoint_2040)+len(var_design_endpoint_2050)
MC_results_Endpoint= pd.DataFrame(index=range(27*500*n_config),columns=['Year','Mission','Configuration','Fuel','Scenario','Impact Level', 'Category','Value', 'Unit'])
# using the function defined above to provide a dataframe with endpoint results
i,j,a,b= Monte_Carlo_dataframing(names_typ_endpoint_2030,MC_results_Endpoint,0,499,0,27*500-1,'endpoint',500)
i,j,a,b= Monte_Carlo_dataframing(names_typ_endpoint_2040,MC_results_Endpoint,i,j,a,b,'endpoint',500)
i,j,a,b= Monte_Carlo_dataframing(names_typ_endpoint_2050,MC_results_Endpoint,i,j,a,b,'endpoint',500)
i,j,a,b= Monte_Carlo_dataframing(names_des_endpoint_2030,MC_results_Endpoint,i,j,a,b,'endpoint',500)
i,j,a,b= Monte_Carlo_dataframing(names_des_endpoint_2040,MC_results_Endpoint,i,j,a,b,'endpoint',500)
i,j,a,b= Monte_Carlo_dataframing(names_des_endpoint_2050,MC_results_Endpoint,i,j,a,b,'endpoint',500)
MC_results_Endpoint=MC_results_Endpoint.replace(['typical'],'Typical')
MC_results_Endpoint=MC_results_Endpoint.replace(['design'],'Design')
MC_results_Endpoint=MC_results_Endpoint.replace(['typical'],'Typical')
MC_results_Endpoint=MC_results_Endpoint.replace(['conventional'],'Conventional')
MC_results_Endpoint=MC_results_Endpoint.replace(['GTbat'],'GT-bat')
MC_results_Endpoint=MC_results_Endpoint.replace(['PEMFCbat'],'PEMFC-bat')
MC_results_Endpoint=MC_results_Endpoint.replace(['SOFCbat'],'SOFC-bat')
MC_results_Endpoint=MC_results_Endpoint.replace(['kerosene'],'Kerosene')
MC_results_Endpoint=MC_results_Endpoint.replace(['h2'],'H2')
MC_results_Endpoint=MC_results_Endpoint.replace(['endpoint'],'Endpoint')
MC_results_Endpoint
| Year | Mission | Configuration | Fuel | Scenario | Impact Level | Category | Value | Unit | |
|---|---|---|---|---|---|---|---|---|---|
| 0 | 2030 | Typical | Conventional | Kerosene | NDC | Endpoint | Climate change, ecosystem quality, short term | 3.465578e+02 | PDF*m2*year |
| 1 | 2030 | Typical | Conventional | Kerosene | NDC | Endpoint | Climate change, ecosystem quality, short term | 3.295668e+02 | PDF*m2*year |
| 2 | 2030 | Typical | Conventional | Kerosene | NDC | Endpoint | Climate change, ecosystem quality, short term | 3.165707e+02 | PDF*m2*year |
| 3 | 2030 | Typical | Conventional | Kerosene | NDC | Endpoint | Climate change, ecosystem quality, short term | 3.327703e+02 | PDF*m2*year |
| 4 | 2030 | Typical | Conventional | Kerosene | NDC | Endpoint | Climate change, ecosystem quality, short term | 3.152945e+02 | PDF*m2*year |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 1187995 | 2050 | Design | Conventional | ILUC | NDC | Endpoint | Ionizing radiation, ecosystem quality | 2.913296e-07 | PDF*m2*year |
| 1187996 | 2050 | Design | Conventional | ILUC | NDC | Endpoint | Ionizing radiation, ecosystem quality | 3.276337e-07 | PDF*m2*year |
| 1187997 | 2050 | Design | Conventional | ILUC | NDC | Endpoint | Ionizing radiation, ecosystem quality | 2.838208e-07 | PDF*m2*year |
| 1187998 | 2050 | Design | Conventional | ILUC | NDC | Endpoint | Ionizing radiation, ecosystem quality | 3.698479e-07 | PDF*m2*year |
| 1187999 | 2050 | Design | Conventional | ILUC | NDC | Endpoint | Ionizing radiation, ecosystem quality | 2.875093e-07 | PDF*m2*year |
1188000 rows × 9 columns
For the climate change, human toxicity, marine acidification and freshwater ecotoxicicty damages, the impacts are only considered over the short-term time span (from t=0 to t=100 years)
See world impact+ article from Bulle et al. (2019)
# using the function defined above to provide a dataframe with endpoint results that are aggregated
dfs = []
for k, v in names_typ_endpoint_2030.items():
dfs.append(Monte_Carlo_endpoint_damage_sums_ST(v, k,500))
for k, v in names_typ_endpoint_2040.items():
dfs.append(Monte_Carlo_endpoint_damage_sums_ST(v, k,500))
for k, v in names_typ_endpoint_2050.items():
dfs.append(Monte_Carlo_endpoint_damage_sums_ST(v, k,500))
for k, v in names_des_endpoint_2030.items():
dfs.append(Monte_Carlo_endpoint_damage_sums_ST(v, k,500))
for k, v in names_des_endpoint_2040.items():
dfs.append(Monte_Carlo_endpoint_damage_sums_ST(v, k,500))
for k, v in names_des_endpoint_2050.items():
dfs.append(Monte_Carlo_endpoint_damage_sums_ST(v, k,500))
endpoints_ST = pd.concat(dfs)
endpoints_ST[["Mission", "Configuration", "Fuel", "Scenario", "Year"]] = endpoints_ST["Configuration"].str.split("_", expand=True)
endpoints_ST['Unit'] = ''
endpoints_ST['Impact Level'] = 'endpoint'
endpoints_ST[['Year', 'Mission', 'Configuration','Fuel','Scenario','Impact Level','Damage','Value','Unit']]
if endpoints_ST.loc[:,'Damage'].isin(['EQ']).sum():
endpoints_ST['Unit'] = 'PDF*m2*year'
else:
endpoints_ST['Unit'] = 'DALY'
endpoints_ST=endpoints_ST.replace(['typical'],'Typical')
endpoints_ST=endpoints_ST.replace(['design'],'Design')
endpoints_ST=endpoints_ST.replace(['typical'],'Typical')
endpoints_ST=endpoints_ST.replace(['conventional'],'Conventional')
endpoints_ST=endpoints_ST.replace(['GTbat'],'GT-bat')
endpoints_ST=endpoints_ST.replace(['PEMFCbat'],'PEMFC-bat')
endpoints_ST=endpoints_ST.replace(['SOFCbat'],'SOFC-bat')
endpoints_ST=endpoints_ST.replace(['h2'],'H2')
endpoints_ST=endpoints_ST.replace(['kerosene'],'Kerosene')
MC_endpoints_ST=endpoints_ST.replace(['Endpoint'],'Endpoint')
MC_endpoints_ST
| Damage | Value | Configuration | Mission | Fuel | Scenario | Year | Unit | Impact Level | |
|---|---|---|---|---|---|---|---|---|---|
| 0 | EQ | 666.237944 | Conventional | Typical | Kerosene | NDC | 2030 | PDF*m2*year | endpoint |
| 1 | EQ | 610.300511 | Conventional | Typical | Kerosene | NDC | 2030 | PDF*m2*year | endpoint |
| 2 | EQ | 604.902153 | Conventional | Typical | Kerosene | NDC | 2030 | PDF*m2*year | endpoint |
| 3 | EQ | 629.974808 | Conventional | Typical | Kerosene | NDC | 2030 | PDF*m2*year | endpoint |
| 4 | EQ | 597.209666 | Conventional | Typical | Kerosene | NDC | 2030 | PDF*m2*year | endpoint |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 995 | HH | 0.008415 | Conventional | Design | ILUC | NDC | 2050 | PDF*m2*year | endpoint |
| 996 | HH | 0.007955 | Conventional | Design | ILUC | NDC | 2050 | PDF*m2*year | endpoint |
| 997 | HH | 0.007579 | Conventional | Design | ILUC | NDC | 2050 | PDF*m2*year | endpoint |
| 998 | HH | 0.007801 | Conventional | Design | ILUC | NDC | 2050 | PDF*m2*year | endpoint |
| 999 | HH | 0.007819 | Conventional | Design | ILUC | NDC | 2050 | PDF*m2*year | endpoint |
88000 rows × 9 columns
In this section we calculate the characterized results based on medians from the Monte Carlo simulations
#medians of monte carlo endpoint results for each impact category and configuration present in the MC_results_Endpoint dataframe
n_iterations=500
length=len(MC_results_Endpoint)/n_iterations
Medians_endpoint=pd.DataFrame(index=range(int(length)),columns=['Year', 'Mission','Configuration', 'Fuel','Scenario', 'Impact Level','Category','Value', 'Unit'])
for k in range(int(length)):
Medians_endpoint.iloc[[k]]= MC_results_Endpoint.iloc[[(n_iterations)*k]] #modulo 500
Medians_endpoint.loc[k,'Value']=MC_results_Endpoint.loc[n_iterations*k:n_iterations*k+500,'Value'].median()
Medians_endpoint_all_results=Medians_endpoint
Medians_endpoint_all_results['Summary']=Medians_endpoint_all_results['Year']+" "+Medians_endpoint_all_results['Configuration']+' ('+Medians_endpoint_all_results['Fuel']+')'
Medians_endpoint_all_results['Category and unit']=Medians_endpoint_all_results['Category']+' ['+Medians_endpoint_all_results['Unit']+']'
#medians of monte carlo midpoint results for each impact category and configuration present in the MC_results_Midpoint dataframe
n_iterations=500
length=len(MC_results_Midpoint)/n_iterations
Medians_midpoint=pd.DataFrame(index=range(int(length)),columns=['Year', 'Mission','Configuration', 'Fuel','Scenario', 'Impact Level','Category','Value', 'Unit'])
for k in range(int(length)):
Medians_midpoint.iloc[[k]]= MC_results_Midpoint.iloc[[(n_iterations)*k]] #modulo 500
Medians_midpoint.loc[k,'Value']=MC_results_Midpoint.loc[n_iterations*k:n_iterations*k+500,'Value'].median()
Medians_midpoint['Category and unit']=Medians_midpoint['Category']+' ['+Medians_midpoint['Unit']+']'
In this section we present dataframes with endpoint characterized results for each SSP scenario and mission type
Medians_endpoint_all_results_NDC=Medians_endpoint_all_results[Medians_endpoint_all_results['Scenario']=='NDC']
Typical Mission
NDC_typical_endpoint_typical=Medians_endpoint_all_results_NDC[Medians_endpoint_all_results_NDC['Mission']=='Typical']
NDC_typical_endpoint_typical=NDC_typical_endpoint_typical.pivot('Category and unit','Summary','Value')
NDC_typical_endpoint_typical
C:\Users\kmadu\AppData\Local\Temp\ipykernel_17960\3670571744.py:2: FutureWarning: In a future version of pandas all arguments of DataFrame.pivot will be keyword-only.
NDC_typical_endpoint_typical=NDC_typical_endpoint_typical.pivot('Category and unit','Summary','Value')
| Summary | 2030 Conventional (AAF) | 2030 Conventional (ILUC) | 2030 Conventional (Kerosene) | 2030 GT-bat (AAF) | 2030 GT-bat (ILUC) | 2030 GT-bat (Kerosene) | 2040 Conventional (AAF) | 2040 Conventional (ILUC) | 2040 Conventional (Kerosene) | 2040 GT-bat (AAF) | 2040 GT-bat (ILUC) | 2040 GT-bat (Kerosene) | 2040 PEMFC-bat (H2) | 2050 Conventional (AAF) | 2050 Conventional (ILUC) | 2050 Conventional (Kerosene) | 2050 PEMFC-bat (H2) | 2050 SOFC-bat (H2) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Category and unit | ||||||||||||||||||
| Climate change, ecosystem quality, long term [PDF*m2*year] | 373.593966 | 548.62447 | 1174.009091 | 408.819477 | 547.724501 | 984.78505 | 310.308337 | 336.048075 | 1062.328517 | 252.431841 | 458.771045 | 673.893192 | 213.186644 | 247.199803 | 358.287081 | 1018.615449 | 168.612649 | 156.351888 |
| Climate change, ecosystem quality, short term [PDF*m2*year] | 172.316605 | 221.094746 | 341.681672 | 170.811855 | 209.4879 | 289.036318 | 144.762142 | 130.734214 | 310.46084 | 107.003706 | 186.586035 | 200.029706 | 70.451015 | 115.449576 | 146.708791 | 296.826737 | 57.114787 | 53.614942 |
| Climate change, human health, long term [DALY] | 0.0017 | 0.002494 | 0.005347 | 0.001861 | 0.002491 | 0.004484 | 0.001412 | 0.001533 | 0.004839 | 0.001147 | 0.002086 | 0.003068 | 0.000971 | 0.001127 | 0.001629 | 0.004639 | 0.000768 | 0.000712 |
| Climate change, human health, short term [DALY] | 0.000798 | 0.001023 | 0.001579 | 0.00079 | 0.000969 | 0.001336 | 0.00067 | 0.000605 | 0.001435 | 0.000495 | 0.000863 | 0.000925 | 0.000326 | 0.000534 | 0.000679 | 0.001372 | 0.000264 | 0.000248 |
| Freshwater acidification [PDF*m2*year] | 15.007743 | 15.023673 | 12.010509 | 12.838089 | 12.826743 | 9.872749 | 13.534173 | 9.792578 | 11.266306 | 9.824503 | 13.570244 | 8.537776 | 8.113268 | 12.094345 | 12.100958 | 10.889082 | 6.773565 | 6.010614 |
| Freshwater ecotoxicity, long term [PDF*m2*year] | 23392.242086 | 23392.242086 | 20726.729491 | 28967.173006 | 28967.173006 | 24431.852901 | 24550.584296 | 28365.982862 | 21292.801748 | 28365.982855 | 24550.584296 | 26602.010864 | 44196.854806 | 26504.942118 | 26504.942118 | 21572.867159 | 43609.551137 | 39531.603724 |
| Freshwater ecotoxicity, short term [PDF*m2*year] | 24.640533 | 24.640533 | 34.918195 | 28.529681 | 28.529681 | 34.067384 | 24.922241 | 24.09991 | 34.503722 | 24.09991 | 24.922241 | 29.544248 | 29.746197 | 24.275411 | 24.275411 | 33.873563 | 29.010504 | 29.025955 |
| Freshwater eutrophication [PDF*m2*year] | 0.911352 | 0.911352 | 0.773626 | 0.787676 | 0.787676 | 0.65816 | 0.777002 | 0.491783 | 0.703301 | 0.491783 | 0.777002 | 0.446803 | 0.391708 | 0.626957 | 0.626957 | 0.679656 | 0.364327 | 0.292507 |
| Human toxicity cancer, long term [DALY] | 0.000007 | 0.000007 | 0.000008 | 0.000009 | 0.000009 | 0.000009 | 0.000008 | 0.000009 | 0.000008 | 0.000009 | 0.000008 | 0.000009 | 0.000015 | 0.000008 | 0.000008 | 0.000008 | 0.000015 | 0.000013 |
| Human toxicity cancer, short term [DALY] | 0.0002 | 0.0002 | 0.000147 | 0.000313 | 0.000313 | 0.00022 | 0.00022 | 0.000277 | 0.000153 | 0.000277 | 0.00022 | 0.00024 | 0.000539 | 0.000267 | 0.000267 | 0.000151 | 0.000512 | 0.000447 |
| Human toxicity non-cancer, long term [DALY] | 0.00026 | 0.00026 | 0.000276 | 0.000323 | 0.000323 | 0.000307 | 0.000272 | 0.000313 | 0.000276 | 0.000313 | 0.000272 | 0.000315 | 0.000499 | 0.000296 | 0.000296 | 0.000275 | 0.000497 | 0.000446 |
| Human toxicity non-cancer, short term [DALY] | 0.000341 | 0.000341 | 0.000302 | 0.000427 | 0.000427 | 0.000368 | 0.000345 | 0.000396 | 0.000301 | 0.000396 | 0.000345 | 0.000372 | 0.000565 | 0.000358 | 0.000358 | 0.000299 | 0.000557 | 0.000505 |
| Ionizing radiation, ecosystem quality [PDF*m2*year] | 0.0 | 0.0 | 0.0 | 0.000001 | 0.000001 | 0.000001 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.000001 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| Ionizing radiation, human health [DALY] | 0.000002 | 0.000002 | 0.000003 | 0.000008 | 0.000008 | 0.000006 | 0.000002 | 0.000003 | 0.000003 | 0.000003 | 0.000002 | 0.000004 | 0.00001 | 0.000002 | 0.000002 | 0.000002 | 0.000005 | 0.000004 |
| Land occupation, biodiversity [PDF*m2*year] | 653.309082 | 653.309082 | 22.725733 | 532.202053 | 532.202053 | 27.956021 | 583.832807 | 340.879258 | 22.981712 | 340.879258 | 583.832807 | 27.599897 | 46.656081 | 534.958387 | 534.958387 | 22.796804 | 40.481212 | 36.764671 |
| Land transformation, biodiversity [PDF*m2*year] | 72.602009 | 72.602009 | 114.952158 | 99.402707 | 99.402707 | 116.29628 | 74.623333 | 83.615669 | 110.726471 | 83.615669 | 74.623333 | 103.978032 | 152.182589 | 79.982763 | 79.982763 | 107.056593 | 142.275864 | 123.639343 |
| Marine acidification, long term [PDF*m2*year] | 76.179902 | 118.306849 | 283.245637 | 86.694194 | 120.249726 | 237.148274 | 62.752183 | 73.929288 | 256.255612 | 53.517562 | 98.678711 | 161.793198 | 48.875865 | 49.834044 | 76.597096 | 245.628552 | 38.246939 | 35.646648 |
| Marine acidification, short term [PDF*m2*year] | 8.269529 | 12.84252 | 30.750577 | 9.410883 | 13.053425 | 25.743557 | 6.811915 | 8.025219 | 27.818861 | 5.809472 | 10.711834 | 17.571089 | 5.305604 | 5.409617 | 8.314817 | 26.666939 | 4.151806 | 3.869538 |
| Marine eutrophication [PDF*m2*year] | 3.602866 | 3.587381 | 1.912251 | 2.882054 | 2.878442 | 1.453253 | 3.293062 | 1.939584 | 1.850725 | 1.944841 | 3.288865 | 1.149948 | 1.095288 | 2.968799 | 2.957397 | 1.802553 | 1.012422 | 0.929792 |
| Ozone layer depletion [DALY] | 0.0 | 0.0 | 0.000001 | 0.0 | 0.0 | 0.000001 | 0.0 | 0.0 | 0.000001 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.000001 | 0.0 | 0.0 |
| Particulate matter formation [DALY] | 0.000742 | 0.00074 | 0.000441 | 0.000701 | 0.000701 | 0.000428 | 0.000655 | 0.000509 | 0.000408 | 0.00051 | 0.000656 | 0.000373 | 0.00045 | 0.000577 | 0.000577 | 0.000388 | 0.000372 | 0.000339 |
| Photochemical oxidant formation [DALY] | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| Terrestrial acidification [PDF*m2*year] | 124.313835 | 124.408015 | 83.389207 | 103.253388 | 103.151885 | 66.76577 | 111.038651 | 75.034556 | 78.275704 | 75.100951 | 111.409189 | 56.553151 | 52.167279 | 97.485832 | 97.543573 | 75.652575 | 43.432269 | 38.576516 |
| Thermally polluted water [PDF*m2*year] | 0.001546 | 0.001546 | 0.001147 | 0.004256 | 0.004256 | 0.002587 | 0.001453 | 0.001992 | 0.000935 | 0.001992 | 0.001453 | 0.001712 | 0.004607 | 0.001215 | 0.001215 | 0.0007 | 0.002252 | 0.001912 |
| Water availability, freshwater ecosystem [PDF*m2*year] | 0.016753 | 0.016753 | 0.006341 | 0.028734 | 0.028734 | 0.013715 | 0.014795 | 0.013965 | 0.005218 | 0.013965 | 0.014795 | 0.008649 | 0.022501 | 0.012465 | 0.012465 | 0.004188 | 0.0129 | 0.010962 |
| Water availability, human health [DALY] | 0.00276 | 0.00276 | 0.00039 | 0.002623 | 0.002623 | 0.000594 | 0.002432 | 0.001695 | 0.000388 | 0.001695 | 0.002432 | 0.000561 | 0.001497 | 0.002087 | 0.002087 | 0.000362 | 0.00132 | 0.001122 |
| Water availability, terrestrial ecosystem [PDF*m2*year] | 0.405326 | 0.405326 | 0.0421 | 0.338226 | 0.338226 | 0.047696 | 0.352991 | 0.21803 | 0.040753 | 0.21803 | 0.352991 | 0.044253 | 0.08831 | 0.295411 | 0.295411 | 0.03902 | 0.083035 | 0.072341 |
Design Mission
Medians_endpoint_all_results_NDC_design=Medians_endpoint_all_results_NDC[Medians_endpoint_all_results_NDC['Mission']=='Design']
Medians_endpoint_all_results_NDC_design=Medians_endpoint_all_results_NDC[Medians_endpoint_all_results_NDC['Mission']=='Design']
NDC_design=Medians_endpoint_all_results_NDC_design.pivot('Category and unit','Summary','Value')
NDC_design
C:\Users\kmadu\AppData\Local\Temp\ipykernel_17960\616642206.py:3: FutureWarning: In a future version of pandas all arguments of DataFrame.pivot will be keyword-only.
NDC_design=Medians_endpoint_all_results_NDC_design.pivot('Category and unit','Summary','Value')
| Summary | 2030 Conventional (AAF) | 2030 Conventional (ILUC) | 2030 Conventional (Kerosene) | 2030 GT-bat (AAF) | 2030 GT-bat (ILUC) | 2030 GT-bat (Kerosene) | 2040 Conventional (AAF) | 2040 Conventional (ILUC) | 2040 Conventional (Kerosene) | 2040 GT-bat (AAF) | 2040 GT-bat (ILUC) | 2040 GT-bat (Kerosene) | 2040 PEMFC-bat (H2) | 2050 Conventional (AAF) | 2050 Conventional (ILUC) | 2050 Conventional (Kerosene) | 2050 PEMFC-bat (H2) | 2050 SOFC-bat (H2) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Category and unit | ||||||||||||||||||
| Climate change, ecosystem quality, long term [PDF*m2*year] | 719.650172 | 1137.124501 | 2578.743868 | 925.007372 | 1340.106811 | 2579.33737 | 576.810615 | 756.308235 | 2334.602141 | 496.941487 | 930.726158 | 1845.290397 | 446.838227 | 464.036402 | 730.910613 | 2251.387255 | 341.275251 | 303.103199 |
| Climate change, ecosystem quality, short term [PDF*m2*year] | 348.913466 | 465.932038 | 745.728483 | 410.329284 | 525.092447 | 746.639345 | 286.685467 | 307.1028 | 674.625546 | 232.529922 | 386.552637 | 535.379125 | 142.514019 | 228.34825 | 304.243106 | 650.239522 | 111.248889 | 99.024884 |
| Climate change, human health, long term [DALY] | 0.003287 | 0.00517 | 0.011743 | 0.004205 | 0.006094 | 0.011749 | 0.002619 | 0.003443 | 0.010638 | 0.002258 | 0.004233 | 0.008403 | 0.002036 | 0.002109 | 0.003325 | 0.010253 | 0.001556 | 0.001381 |
| Climate change, human health, short term [DALY] | 0.001615 | 0.002156 | 0.003446 | 0.001899 | 0.002429 | 0.003451 | 0.001327 | 0.001421 | 0.003118 | 0.001076 | 0.001789 | 0.002474 | 0.000659 | 0.001057 | 0.001408 | 0.003005 | 0.000514 | 0.000458 |
| Freshwater acidification [PDF*m2*year] | 31.316987 | 31.346993 | 24.349665 | 35.022531 | 35.070342 | 25.479944 | 28.021624 | 24.088206 | 22.743503 | 24.111492 | 28.00446 | 22.054776 | 17.252913 | 24.900926 | 24.843731 | 21.955887 | 14.603733 | 12.316105 |
| Freshwater ecotoxicity, long term [PDF*m2*year] | 27770.419454 | 27770.419454 | 21620.011178 | 43946.652404 | 43946.652416 | 25983.711804 | 29369.314804 | 32560.397493 | 21776.525157 | 32560.397492 | 29369.314804 | 38678.667256 | 99377.788079 | 33661.434172 | 33661.434172 | 22145.411197 | 93179.139107 | 80524.108868 |
| Freshwater ecotoxicity, short term [PDF*m2*year] | 37.459936 | 37.459936 | 60.731073 | 51.209919 | 51.209919 | 64.183669 | 35.555449 | 33.250681 | 57.754107 | 33.250681 | 35.555449 | 57.401215 | 65.358738 | 34.62463 | 34.62463 | 56.293646 | 59.666662 | 54.30195 |
| Freshwater eutrophication [PDF*m2*year] | 2.088919 | 2.088919 | 1.75648 | 2.180668 | 2.180668 | 1.78183 | 1.771771 | 1.366787 | 1.609746 | 1.366787 | 1.771771 | 1.268911 | 1.265435 | 1.427834 | 1.427834 | 1.554971 | 1.129233 | 0.89292 |
| Human toxicity cancer, long term [DALY] | 0.000008 | 0.000008 | 0.00001 | 0.000013 | 0.000013 | 0.000011 | 0.000008 | 0.00001 | 0.00001 | 0.00001 | 0.000008 | 0.000015 | 0.000034 | 0.00001 | 0.00001 | 0.00001 | 0.000032 | 0.000027 |
| Human toxicity cancer, short term [DALY] | 0.000311 | 0.000311 | 0.00019 | 0.00064 | 0.00064 | 0.000276 | 0.000347 | 0.000388 | 0.00019 | 0.000388 | 0.000347 | 0.000532 | 0.001616 | 0.000458 | 0.000458 | 0.000189 | 0.001514 | 0.001287 |
| Human toxicity non-cancer, long term [DALY] | 0.000276 | 0.000276 | 0.000313 | 0.00045 | 0.00045 | 0.000352 | 0.000299 | 0.000336 | 0.000308 | 0.000336 | 0.000299 | 0.000473 | 0.001111 | 0.000357 | 0.000357 | 0.000307 | 0.001039 | 0.000882 |
| Human toxicity non-cancer, short term [DALY] | 0.000422 | 0.000422 | 0.000332 | 0.000644 | 0.000644 | 0.00042 | 0.000426 | 0.000466 | 0.000326 | 0.000466 | 0.000426 | 0.000525 | 0.001207 | 0.000459 | 0.000459 | 0.000323 | 0.001123 | 0.000969 |
| Ionizing radiation, ecosystem quality [PDF*m2*year] | 0.0 | 0.0 | 0.000001 | 0.000001 | 0.000001 | 0.000001 | 0.0 | 0.0 | 0.000001 | 0.0 | 0.0 | 0.000001 | 0.000002 | 0.0 | 0.0 | 0.000001 | 0.000001 | 0.000001 |
| Ionizing radiation, human health [DALY] | 0.000003 | 0.000003 | 0.000006 | 0.00002 | 0.00002 | 0.000009 | 0.000003 | 0.000005 | 0.000006 | 0.000005 | 0.000003 | 0.000014 | 0.000037 | 0.000003 | 0.000003 | 0.000005 | 0.000016 | 0.000013 |
| Land occupation, biodiversity [PDF*m2*year] | 1492.994781 | 1492.994781 | 26.869642 | 1507.097555 | 1507.097555 | 32.896824 | 1330.220443 | 995.35453 | 26.693175 | 995.35453 | 1330.220443 | 50.526015 | 120.122205 | 1217.126019 | 1217.126019 | 26.633454 | 94.144288 | 81.434546 |
| Land transformation, biodiversity [PDF*m2*year] | 118.57439 | 118.57439 | 216.590384 | 210.897996 | 210.897996 | 231.395515 | 118.629639 | 122.22682 | 202.561398 | 122.22682 | 118.629639 | 264.879694 | 454.836362 | 132.943594 | 132.943594 | 196.100335 | 409.998796 | 347.827726 |
| Marine acidification, long term [PDF*m2*year] | 142.586105 | 242.893247 | 622.861042 | 189.183028 | 289.429015 | 622.669337 | 111.806333 | 161.978007 | 564.072362 | 98.961733 | 197.149036 | 443.766966 | 99.878732 | 90.264004 | 153.945142 | 543.361076 | 75.099955 | 66.709845 |
| Marine acidification, short term [PDF*m2*year] | 15.478097 | 26.366702 | 67.640587 | 20.536316 | 31.418282 | 67.615251 | 12.136872 | 17.583139 | 61.269863 | 10.742557 | 21.401047 | 48.183907 | 10.842099 | 9.798395 | 16.711151 | 58.999793 | 8.152298 | 7.241529 |
| Marine eutrophication [PDF*m2*year] | 8.220768 | 8.219903 | 4.341855 | 9.081705 | 9.111746 | 4.808427 | 7.492667 | 6.162307 | 4.170882 | 6.159837 | 7.466423 | 4.03558 | 2.683875 | 6.743322 | 6.736285 | 4.057601 | 2.272041 | 1.999703 |
| Ozone layer depletion [DALY] | 0.0 | 0.0 | 0.000002 | 0.0 | 0.0 | 0.000002 | 0.0 | 0.0 | 0.000002 | 0.0 | 0.0 | 0.000001 | 0.0 | 0.0 | 0.0 | 0.000002 | 0.0 | 0.0 |
| Particulate matter formation [DALY] | 0.001481 | 0.001482 | 0.000788 | 0.001714 | 0.001714 | 0.000855 | 0.001291 | 0.001096 | 0.000719 | 0.001096 | 0.001292 | 0.000798 | 0.001024 | 0.001125 | 0.001125 | 0.000689 | 0.000818 | 0.000707 |
| Photochemical oxidant formation [DALY] | 0.000001 | 0.000001 | 0.000001 | 0.000001 | 0.000001 | 0.000001 | 0.000001 | 0.000001 | 0.000001 | 0.000001 | 0.000001 | 0.000001 | 0.0 | 0.000001 | 0.000001 | 0.000001 | 0.0 | 0.0 |
| Terrestrial acidification [PDF*m2*year] | 267.769429 | 268.162014 | 172.865856 | 293.634826 | 293.762072 | 181.706584 | 238.128207 | 199.439233 | 162.047583 | 199.70793 | 238.074319 | 155.79723 | 112.681324 | 207.998955 | 207.560191 | 156.381336 | 94.093131 | 79.567753 |
| Thermally polluted water [PDF*m2*year] | 0.002802 | 0.002802 | 0.001848 | 0.010734 | 0.010734 | 0.003418 | 0.00263 | 0.003024 | 0.001429 | 0.003024 | 0.00263 | 0.005296 | 0.015799 | 0.002348 | 0.002348 | 0.001154 | 0.007135 | 0.006019 |
| Water availability, freshwater ecosystem [PDF*m2*year] | 0.033535 | 0.033535 | 0.009507 | 0.073769 | 0.073769 | 0.017483 | 0.029524 | 0.026913 | 0.007431 | 0.026913 | 0.029524 | 0.024213 | 0.073692 | 0.025346 | 0.025346 | 0.00619 | 0.038751 | 0.032857 |
| Water availability, human health [DALY] | 0.005928 | 0.005928 | 0.000459 | 0.006874 | 0.006874 | 0.000684 | 0.005155 | 0.004083 | 0.000429 | 0.004083 | 0.005155 | 0.001215 | 0.004531 | 0.004379 | 0.004379 | 0.0004 | 0.003736 | 0.003124 |
| Water availability, terrestrial ecosystem [PDF*m2*year] | 0.888296 | 0.888296 | 0.049824 | 0.900956 | 0.900956 | 0.057966 | 0.768238 | 0.581427 | 0.04629 | 0.581427 | 0.768238 | 0.060674 | 0.215415 | 0.639471 | 0.639471 | 0.043992 | 0.188345 | 0.155945 |
Medians_endpoint_all_results_Base=Medians_endpoint_all_results[Medians_endpoint_all_results['Scenario']=='Base']
Typical Mission
Medians_endpoint_all_results_Base_typical=Medians_endpoint_all_results_Base[Medians_endpoint_all_results_Base['Mission']=='Typical']
Base_typical=Medians_endpoint_all_results_Base_typical.pivot('Category and unit','Summary','Value')
Base_typical
C:\Users\kmadu\AppData\Local\Temp\ipykernel_17960\755782553.py:2: FutureWarning: In a future version of pandas all arguments of DataFrame.pivot will be keyword-only.
Base_typical=Medians_endpoint_all_results_Base_typical.pivot('Category and unit','Summary','Value')
| Summary | 2030 Conventional (AAF) | 2030 Conventional (Kerosene) | 2030 GT-bat (AAF) | 2030 GT-bat (Kerosene) | 2040 Conventional (AAF) | 2040 Conventional (Kerosene) | 2040 GT-bat (AAF) | 2040 GT-bat (Kerosene) | 2040 PEMFC-bat (H2) | 2050 Conventional (AAF) | 2050 Conventional (Kerosene) | 2050 PEMFC-bat (H2) | 2050 SOFC-bat (H2) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Category and unit | |||||||||||||
| Climate change, ecosystem quality, long term [PDF*m2*year] | 415.491262 | 1207.108356 | 616.018199 | 1106.030626 | 384.792575 | 1104.784364 | 370.874967 | 779.380925 | 559.375101 | 319.375921 | 1053.642229 | 315.130666 | 280.217943 |
| Climate change, ecosystem quality, short term [PDF*m2*year] | 183.888645 | 352.61235 | 234.215542 | 326.1224 | 167.413121 | 323.546561 | 144.532607 | 232.739575 | 175.917011 | 137.046229 | 308.943903 | 103.562217 | 92.020284 |
| Climate change, human health, long term [DALY] | 0.001889 | 0.005498 | 0.002803 | 0.005037 | 0.001749 | 0.005033 | 0.001688 | 0.003549 | 0.002549 | 0.001452 | 0.004798 | 0.001435 | 0.001276 |
| Climate change, human health, short term [DALY] | 0.000851 | 0.00163 | 0.001083 | 0.001507 | 0.000775 | 0.001495 | 0.000669 | 0.001076 | 0.000813 | 0.000634 | 0.001428 | 0.000479 | 0.000425 |
| Freshwater acidification [PDF*m2*year] | 15.259835 | 12.181714 | 13.697693 | 10.356896 | 13.787071 | 11.365408 | 10.149669 | 8.763295 | 9.016261 | 12.211318 | 10.981907 | 6.950462 | 6.170377 |
| Freshwater ecotoxicity, long term [PDF*m2*year] | 23692.100384 | 20946.385997 | 29748.712077 | 24840.492304 | 24816.378905 | 21417.755181 | 28550.526353 | 26648.793708 | 44380.679735 | 26736.492477 | 21684.190239 | 44165.889823 | 39587.011987 |
| Freshwater ecotoxicity, short term [PDF*m2*year] | 26.41938 | 36.5062 | 30.762032 | 35.956742 | 26.506744 | 35.326461 | 28.289302 | 33.237482 | 35.302977 | 27.169965 | 35.919364 | 32.982613 | 29.912435 |
| Freshwater eutrophication [PDF*m2*year] | 0.912005 | 0.771932 | 0.786666 | 0.653595 | 0.774068 | 0.700202 | 0.485538 | 0.44177 | 0.382369 | 0.62261 | 0.68198 | 0.361239 | 0.292963 |
| Human toxicity cancer, long term [DALY] | 0.000008 | 0.000009 | 0.000011 | 0.00001 | 0.000008 | 0.000009 | 0.00001 | 0.00001 | 0.000016 | 0.000009 | 0.000008 | 0.000015 | 0.000013 |
| Human toxicity cancer, short term [DALY] | 0.000202 | 0.000149 | 0.00032 | 0.000224 | 0.000221 | 0.000153 | 0.000275 | 0.000236 | 0.000525 | 0.000265 | 0.000149 | 0.000512 | 0.000442 |
| Human toxicity non-cancer, long term [DALY] | 0.000265 | 0.00028 | 0.00035 | 0.000323 | 0.000278 | 0.000279 | 0.000321 | 0.000322 | 0.000521 | 0.000297 | 0.000275 | 0.000497 | 0.000449 |
| Human toxicity non-cancer, short term [DALY] | 0.000346 | 0.000307 | 0.000459 | 0.000387 | 0.000353 | 0.000307 | 0.000407 | 0.00038 | 0.000596 | 0.000363 | 0.000302 | 0.000564 | 0.00051 |
| Ionizing radiation, ecosystem quality [PDF*m2*year] | 0.0 | 0.0 | 0.000001 | 0.000001 | 0.0 | 0.0 | 0.0 | 0.0 | 0.000001 | 0.0 | 0.0 | 0.0 | 0.0 |
| Ionizing radiation, human health [DALY] | 0.000002 | 0.000003 | 0.000008 | 0.000006 | 0.000002 | 0.000003 | 0.000004 | 0.000004 | 0.000012 | 0.000002 | 0.000002 | 0.000005 | 0.000004 |
| Land occupation, biodiversity [PDF*m2*year] | 652.149029 | 21.023765 | 525.925159 | 23.511692 | 581.482286 | 21.947975 | 339.842901 | 24.957827 | 38.379626 | 530.546978 | 21.854149 | 35.458398 | 32.3392 |
| Land transformation, biodiversity [PDF*m2*year] | 71.6452 | 113.879264 | 91.867282 | 111.848521 | 73.820446 | 109.504415 | 79.898445 | 99.692027 | 138.549986 | 78.945529 | 106.0465 | 135.09771 | 116.082775 |
| Marine acidification, long term [PDF*m2*year] | 86.11602 | 291.398062 | 136.743187 | 266.403971 | 80.606012 | 266.549748 | 82.001788 | 187.371244 | 132.525583 | 67.279902 | 254.142184 | 73.604509 | 65.484368 |
| Marine acidification, short term [PDF*m2*year] | 9.348121 | 31.638873 | 14.843833 | 28.921751 | 8.749995 | 28.948351 | 8.90151 | 20.340562 | 14.391513 | 7.303411 | 27.590144 | 7.991182 | 7.109529 |
| Marine eutrophication [PDF*m2*year] | 3.629435 | 1.936707 | 2.958513 | 1.495842 | 3.316865 | 1.86752 | 1.987572 | 1.180827 | 1.131895 | 2.999981 | 1.826742 | 1.00907 | 0.899773 |
| Ozone layer depletion [DALY] | 0.0 | 0.000001 | 0.0 | 0.000001 | 0.0 | 0.000001 | 0.0 | 0.0 | 0.0 | 0.0 | 0.000001 | 0.0 | 0.0 |
| Particulate matter formation [DALY] | 0.000761 | 0.000454 | 0.000739 | 0.000453 | 0.00068 | 0.000425 | 0.000539 | 0.000394 | 0.000492 | 0.00059 | 0.0004 | 0.000384 | 0.000344 |
| Photochemical oxidant formation [DALY] | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| Terrestrial acidification [PDF*m2*year] | 126.025494 | 84.661574 | 108.862876 | 69.835521 | 112.907821 | 79.03299 | 77.424284 | 58.181616 | 58.065791 | 98.36929 | 76.388396 | 44.283998 | 39.369399 |
| Thermally polluted water [PDF*m2*year] | 0.001949 | 0.001487 | 0.008131 | 0.004719 | 0.002221 | 0.001296 | 0.003721 | 0.003207 | 0.010776 | 0.001825 | 0.000886 | 0.004371 | 0.003644 |
| Water availability, freshwater ecosystem [PDF*m2*year] | 0.018875 | 0.008297 | 0.055373 | 0.02836 | 0.020362 | 0.007542 | 0.027373 | 0.020277 | 0.072285 | 0.018243 | 0.005454 | 0.034915 | 0.028986 |
| Water availability, human health [DALY] | 0.002794 | 0.000414 | 0.002932 | 0.000752 | 0.002492 | 0.000413 | 0.001829 | 0.000672 | 0.001923 | 0.002117 | 0.000368 | 0.00141 | 0.0012 |
| Water availability, terrestrial ecosystem [PDF*m2*year] | 0.406583 | 0.043644 | 0.356612 | 0.057451 | 0.357106 | 0.04364 | 0.228053 | 0.052405 | 0.113326 | 0.298146 | 0.040462 | 0.087168 | 0.076582 |
Design Mission
Medians_endpoint_all_results_Base_design=Medians_endpoint_all_results_Base[Medians_endpoint_all_results_Base['Mission']=='Design']
Medians_endpoint_all_results_Base_design=Medians_endpoint_all_results_Base[Medians_endpoint_all_results_Base['Mission']=='Design']
Base_design=Medians_endpoint_all_results_Base_design.pivot('Category and unit','Summary','Value')
Base_design
C:\Users\kmadu\AppData\Local\Temp\ipykernel_17960\857142569.py:3: FutureWarning: In a future version of pandas all arguments of DataFrame.pivot will be keyword-only.
Base_design=Medians_endpoint_all_results_Base_design.pivot('Category and unit','Summary','Value')
| Summary | 2030 Conventional (AAF) | 2030 Conventional (Kerosene) | 2030 GT-bat (AAF) | 2030 GT-bat (Kerosene) | 2040 Conventional (AAF) | 2040 Conventional (Kerosene) | 2040 GT-bat (AAF) | 2040 GT-bat (Kerosene) | 2040 PEMFC-bat (H2) | 2050 Conventional (AAF) | 2050 Conventional (Kerosene) | 2050 PEMFC-bat (H2) | 2050 SOFC-bat (H2) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Category and unit | |||||||||||||
| Climate change, ecosystem quality, long term [PDF*m2*year] | 788.648172 | 2627.814451 | 1485.268064 | 2714.530247 | 703.78023 | 2387.560832 | 655.480818 | 2200.908272 | 1684.177378 | 587.458184 | 2298.49619 | 793.633858 | 685.078146 |
| Climate change, ecosystem quality, short term [PDF*m2*year] | 369.444663 | 759.283794 | 578.979158 | 788.950593 | 324.397918 | 691.144572 | 283.580709 | 646.460363 | 519.733564 | 265.851387 | 665.605316 | 253.122284 | 218.39431 |
| Climate change, human health, long term [DALY] | 0.003583 | 0.011972 | 0.006756 | 0.012362 | 0.003199 | 0.010873 | 0.002979 | 0.010022 | 0.007673 | 0.002671 | 0.010467 | 0.003614 | 0.003119 |
| Climate change, human health, short term [DALY] | 0.00171 | 0.003509 | 0.002679 | 0.003646 | 0.001501 | 0.003194 | 0.001312 | 0.002988 | 0.002402 | 0.00123 | 0.003076 | 0.00117 | 0.001009 |
| Freshwater acidification [PDF*m2*year] | 31.666462 | 24.560486 | 37.219734 | 26.07557 | 28.40143 | 22.929426 | 24.649488 | 22.895249 | 20.429903 | 25.041815 | 22.111458 | 14.81707 | 12.474759 |
| Freshwater ecotoxicity, long term [PDF*m2*year] | 28263.606434 | 21918.547038 | 46048.514722 | 26472.843408 | 29834.522769 | 21919.157751 | 32920.036856 | 39391.238569 | 101552.921259 | 34073.400265 | 22204.43253 | 93579.960181 | 79924.110429 |
| Freshwater ecotoxicity, short term [PDF*m2*year] | 39.682935 | 63.114919 | 56.915463 | 66.481923 | 38.133188 | 58.847242 | 37.999459 | 64.040888 | 78.547998 | 38.435221 | 58.48467 | 68.907681 | 59.014314 |
| Freshwater eutrophication [PDF*m2*year] | 2.080648 | 1.756363 | 2.174657 | 1.781594 | 1.76708 | 1.605666 | 1.36681 | 1.260366 | 1.245964 | 1.421042 | 1.560808 | 1.103215 | 0.873685 |
| Human toxicity cancer, long term [DALY] | 0.000008 | 0.00001 | 0.000017 | 0.000012 | 0.000009 | 0.00001 | 0.00001 | 0.000016 | 0.000039 | 0.00001 | 0.00001 | 0.000032 | 0.000027 |
| Human toxicity cancer, short term [DALY] | 0.000315 | 0.000192 | 0.000657 | 0.000281 | 0.000348 | 0.000188 | 0.000385 | 0.000524 | 0.00155 | 0.000455 | 0.000185 | 0.001492 | 0.001264 |
| Human toxicity non-cancer, long term [DALY] | 0.000283 | 0.000319 | 0.000523 | 0.000369 | 0.000308 | 0.000311 | 0.000349 | 0.000501 | 0.001205 | 0.000358 | 0.000307 | 0.001035 | 0.000883 |
| Human toxicity non-cancer, short term [DALY] | 0.00043 | 0.000338 | 0.000728 | 0.000442 | 0.000439 | 0.000331 | 0.000482 | 0.000561 | 0.001333 | 0.000468 | 0.000328 | 0.001144 | 0.000971 |
| Ionizing radiation, ecosystem quality [PDF*m2*year] | 0.0 | 0.000001 | 0.000002 | 0.000001 | 0.0 | 0.000001 | 0.0 | 0.000001 | 0.000003 | 0.0 | 0.000001 | 0.000001 | 0.000001 |
| Ionizing radiation, human health [DALY] | 0.000003 | 0.000006 | 0.000021 | 0.00001 | 0.000004 | 0.000006 | 0.000005 | 0.000016 | 0.000044 | 0.000004 | 0.000005 | 0.000018 | 0.000015 |
| Land occupation, biodiversity [PDF*m2*year] | 1485.927467 | 24.142948 | 1491.273941 | 27.272844 | 1325.790813 | 25.069491 | 996.809321 | 41.266566 | 90.574049 | 1210.921474 | 25.252309 | 76.18057 | 66.701784 |
| Land transformation, biodiversity [PDF*m2*year] | 117.17761 | 215.039307 | 190.86504 | 226.559519 | 118.013276 | 200.540147 | 118.436985 | 251.025574 | 408.501325 | 132.496947 | 194.880471 | 381.493384 | 321.598565 |
| Marine acidification, long term [PDF*m2*year] | 158.328634 | 635.011061 | 324.692505 | 655.261083 | 142.141243 | 576.815197 | 137.087184 | 529.617381 | 398.663922 | 119.561375 | 555.162323 | 184.473264 | 159.280658 |
| Marine acidification, short term [PDF*m2*year] | 17.18699 | 68.963319 | 35.246227 | 71.161498 | 15.429806 | 62.619826 | 14.881175 | 57.496394 | 43.310679 | 12.978702 | 60.275152 | 20.034654 | 17.291248 |
| Marine eutrophication [PDF*m2*year] | 8.251508 | 4.372859 | 9.233079 | 4.834307 | 7.543633 | 4.19023 | 6.219435 | 4.106708 | 2.870147 | 6.809575 | 4.09738 | 2.238387 | 1.88552 |
| Ozone layer depletion [DALY] | 0.0 | 0.000002 | 0.0 | 0.000002 | 0.0 | 0.000002 | 0.0 | 0.000001 | 0.0 | 0.0 | 0.000002 | 0.0 | 0.0 |
| Particulate matter formation [DALY] | 0.001516 | 0.000805 | 0.001806 | 0.000889 | 0.001325 | 0.000737 | 0.001136 | 0.000841 | 0.001123 | 0.001145 | 0.000702 | 0.00081 | 0.000695 |
| Photochemical oxidant formation [DALY] | 0.000001 | 0.000001 | 0.000001 | 0.000001 | 0.000001 | 0.000001 | 0.000001 | 0.000001 | 0.0 | 0.000001 | 0.000001 | 0.0 | 0.0 |
| Terrestrial acidification [PDF*m2*year] | 270.158605 | 174.506535 | 307.925569 | 185.375764 | 240.755324 | 163.249668 | 203.566311 | 161.337345 | 133.60317 | 209.447932 | 157.676173 | 94.793498 | 80.166978 |
| Thermally polluted water [PDF*m2*year] | 0.003387 | 0.002288 | 0.02122 | 0.005707 | 0.004022 | 0.001817 | 0.005288 | 0.011566 | 0.038877 | 0.003556 | 0.001364 | 0.014404 | 0.012059 |
| Water availability, freshwater ecosystem [PDF*m2*year] | 0.036839 | 0.011903 | 0.146537 | 0.032801 | 0.039894 | 0.009913 | 0.044424 | 0.075534 | 0.263524 | 0.037383 | 0.007565 | 0.117729 | 0.098563 |
| Water availability, human health [DALY] | 0.005983 | 0.000477 | 0.007718 | 0.000836 | 0.005273 | 0.00045 | 0.004276 | 0.001646 | 0.006109 | 0.004463 | 0.000401 | 0.004069 | 0.003385 |
| Water availability, terrestrial ecosystem [PDF*m2*year] | 0.889651 | 0.050743 | 0.951757 | 0.066801 | 0.773433 | 0.049127 | 0.597209 | 0.086301 | 0.306154 | 0.645117 | 0.046261 | 0.200746 | 0.167061 |
Medians_endpoint_all_results_PkBudg500=Medians_endpoint_all_results[Medians_endpoint_all_results['Scenario']=='PkBudg500']
Typical Mission
Medians_endpoint_all_results_PkBudg500_typical=Medians_endpoint_all_results_PkBudg500[Medians_endpoint_all_results_PkBudg500['Mission']=='Typical']
PkBudg500_typical=Medians_endpoint_all_results_PkBudg500_typical.pivot('Category and unit','Summary','Value')
PkBudg500_typical
C:\Users\kmadu\AppData\Local\Temp\ipykernel_17960\438035318.py:2: FutureWarning: In a future version of pandas all arguments of DataFrame.pivot will be keyword-only.
PkBudg500_typical=Medians_endpoint_all_results_PkBudg500_typical.pivot('Category and unit','Summary','Value')
| Summary | 2030 Conventional (AAF) | 2030 Conventional (Kerosene) | 2030 GT-bat (AAF) | 2030 GT-bat (Kerosene) | 2040 Conventional (AAF) | 2040 Conventional (Kerosene) | 2040 GT-bat (AAF) | 2040 GT-bat (Kerosene) | 2040 PEMFC-bat (H2) | 2050 Conventional (AAF) | 2050 Conventional (Kerosene) | 2050 PEMFC-bat (H2) | 2050 SOFC-bat (H2) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Category and unit | |||||||||||||
| Climate change, ecosystem quality, long term [PDF*m2*year] | 344.439021 | 1150.708536 | 358.138277 | 944.928681 | 281.235589 | 1041.256881 | 218.164804 | 648.063501 | 171.517005 | 222.890457 | 1004.372126 | 149.008257 | 134.617744 |
| Climate change, ecosystem quality, short term [PDF*m2*year] | 162.594933 | 334.829319 | 155.018083 | 276.164983 | 135.51537 | 303.951057 | 96.21758 | 192.480882 | 57.240301 | 109.616701 | 294.249007 | 51.944325 | 47.411891 |
| Climate change, human health, long term [DALY] | 0.001567 | 0.005241 | 0.001628 | 0.004305 | 0.001278 | 0.004742 | 0.000993 | 0.002951 | 0.000781 | 0.001013 | 0.004576 | 0.000679 | 0.000615 |
| Climate change, human health, short term [DALY] | 0.000753 | 0.001547 | 0.000717 | 0.001276 | 0.000627 | 0.001405 | 0.000445 | 0.00089 | 0.000265 | 0.000507 | 0.00136 | 0.00024 | 0.000219 |
| Freshwater acidification [PDF*m2*year] | 14.85757 | 11.867976 | 12.615356 | 9.653768 | 13.519788 | 11.217769 | 9.76082 | 8.43188 | 8.04648 | 12.152636 | 10.910336 | 6.911159 | 6.119861 |
| Freshwater ecotoxicity, long term [PDF*m2*year] | 23235.616718 | 20577.477187 | 28914.173167 | 24378.259523 | 24609.619546 | 21288.021982 | 28475.930863 | 26586.252797 | 43674.297178 | 26686.529006 | 21762.544631 | 44187.040912 | 39493.111114 |
| Freshwater ecotoxicity, short term [PDF*m2*year] | 23.246177 | 33.43631 | 26.406977 | 32.67682 | 24.875478 | 34.423064 | 24.752834 | 29.960448 | 28.051581 | 26.79393 | 35.729922 | 29.25089 | 28.149953 |
| Freshwater eutrophication [PDF*m2*year] | 0.917117 | 0.772466 | 0.791859 | 0.659521 | 0.779812 | 0.704299 | 0.495364 | 0.450631 | 0.385938 | 0.627097 | 0.681883 | 0.368713 | 0.303653 |
| Human toxicity cancer, long term [DALY] | 0.000007 | 0.000008 | 0.000009 | 0.000009 | 0.000008 | 0.000008 | 0.000009 | 0.000009 | 0.000015 | 0.000009 | 0.000008 | 0.000015 | 0.000013 |
| Human toxicity cancer, short term [DALY] | 0.0002 | 0.000148 | 0.000318 | 0.000224 | 0.000222 | 0.000153 | 0.000281 | 0.000242 | 0.000544 | 0.000272 | 0.000153 | 0.00053 | 0.000458 |
| Human toxicity non-cancer, long term [DALY] | 0.000257 | 0.000273 | 0.00032 | 0.000304 | 0.000271 | 0.000274 | 0.000313 | 0.000315 | 0.000496 | 0.000298 | 0.000276 | 0.000502 | 0.000451 |
| Human toxicity non-cancer, short term [DALY] | 0.000336 | 0.000298 | 0.000423 | 0.000364 | 0.000342 | 0.000299 | 0.000392 | 0.000368 | 0.000558 | 0.000358 | 0.000298 | 0.000556 | 0.000504 |
| Ionizing radiation, ecosystem quality [PDF*m2*year] | 0.0 | 0.0 | 0.000001 | 0.000001 | 0.0 | 0.0 | 0.0 | 0.0 | 0.000001 | 0.0 | 0.0 | 0.0 | 0.0 |
| Ionizing radiation, human health [DALY] | 0.000001 | 0.000003 | 0.000007 | 0.000006 | 0.000002 | 0.000003 | 0.000003 | 0.000004 | 0.000009 | 0.000002 | 0.000002 | 0.000004 | 0.000004 |
| Land occupation, biodiversity [PDF*m2*year] | 657.273158 | 22.931519 | 532.430711 | 27.58697 | 589.589179 | 25.141669 | 348.789018 | 30.565563 | 54.098897 | 546.735365 | 27.429017 | 48.95094 | 44.143116 |
| Land transformation, biodiversity [PDF*m2*year] | 73.081576 | 115.653282 | 101.874269 | 117.92834 | 74.66036 | 110.875062 | 84.68521 | 104.590592 | 155.1724 | 78.098547 | 105.658036 | 142.540224 | 124.653795 |
| Marine acidification, long term [PDF*m2*year] | 68.80692 | 277.7565 | 74.043585 | 227.505378 | 55.352294 | 251.193121 | 45.245873 | 155.657722 | 38.877194 | 43.973795 | 242.271521 | 33.596991 | 30.363628 |
| Marine acidification, short term [PDF*m2*year] | 7.469172 | 30.15668 | 8.037626 | 24.697192 | 6.008637 | 27.277802 | 4.911559 | 16.900506 | 4.220222 | 4.773471 | 26.306012 | 3.647042 | 3.296052 |
| Marine eutrophication [PDF*m2*year] | 3.582324 | 1.907864 | 2.883811 | 1.45172 | 3.301653 | 1.862943 | 1.978016 | 1.158286 | 1.055043 | 2.995696 | 1.844432 | 1.026167 | 0.941476 |
| Ozone layer depletion [DALY] | 0.0 | 0.000001 | 0.0 | 0.000001 | 0.0 | 0.000001 | 0.0 | 0.0 | 0.0 | 0.0 | 0.000001 | 0.0 | 0.0 |
| Particulate matter formation [DALY] | 0.000716 | 0.00042 | 0.00067 | 0.000401 | 0.000645 | 0.000399 | 0.000498 | 0.000357 | 0.000424 | 0.000579 | 0.000391 | 0.000377 | 0.000337 |
| Photochemical oxidant formation [DALY] | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| Terrestrial acidification [PDF*m2*year] | 123.387978 | 82.577621 | 101.683879 | 65.299184 | 111.061117 | 77.969719 | 74.935445 | 55.914279 | 51.668118 | 97.896969 | 75.855891 | 44.284187 | 39.203271 |
| Thermally polluted water [PDF*m2*year] | 0.001271 | 0.000909 | 0.003582 | 0.002133 | 0.001191 | 0.000715 | 0.00164 | 0.00137 | 0.004058 | 0.001116 | 0.000621 | 0.002105 | 0.001803 |
| Water availability, freshwater ecosystem [PDF*m2*year] | 0.015443 | 0.005113 | 0.023386 | 0.010415 | 0.013572 | 0.004244 | 0.012544 | 0.007269 | 0.020579 | 0.012093 | 0.003851 | 0.012686 | 0.010971 |
| Water availability, human health [DALY] | 0.00275 | 0.000384 | 0.002668 | 0.000608 | 0.002414 | 0.000368 | 0.001731 | 0.000585 | 0.001667 | 0.002103 | 0.000373 | 0.001478 | 0.001279 |
| Water availability, terrestrial ecosystem [PDF*m2*year] | 0.403712 | 0.040919 | 0.336733 | 0.046037 | 0.351325 | 0.04035 | 0.219538 | 0.044053 | 0.088382 | 0.298485 | 0.040956 | 0.084654 | 0.075493 |
Design Mission
Medians_endpoint_all_results_PkBudg500_design=Medians_endpoint_all_results_PkBudg500[Medians_endpoint_all_results_PkBudg500['Mission']=='Design']
Medians_endpoint_all_results_PkBudg500_design=Medians_endpoint_all_results_PkBudg500[Medians_endpoint_all_results_PkBudg500['Mission']=='Design']
PkBudg500_design=Medians_endpoint_all_results_PkBudg500_design.pivot('Category and unit','Summary','Value')
PkBudg500_design
C:\Users\kmadu\AppData\Local\Temp\ipykernel_17960\1645133878.py:3: FutureWarning: In a future version of pandas all arguments of DataFrame.pivot will be keyword-only.
PkBudg500_design=Medians_endpoint_all_results_PkBudg500_design.pivot('Category and unit','Summary','Value')
| Summary | 2030 Conventional (AAF) | 2030 Conventional (Kerosene) | 2030 GT-bat (AAF) | 2030 GT-bat (Kerosene) | 2040 Conventional (AAF) | 2040 Conventional (Kerosene) | 2040 GT-bat (AAF) | 2040 GT-bat (Kerosene) | 2040 PEMFC-bat (H2) | 2050 Conventional (AAF) | 2050 Conventional (Kerosene) | 2050 PEMFC-bat (H2) | 2050 SOFC-bat (H2) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Category and unit | |||||||||||||
| Climate change, ecosystem quality, long term [PDF*m2*year] | 671.198593 | 2546.458241 | 821.713167 | 2531.819757 | 524.173448 | 2310.934837 | 447.11551 | 1808.732893 | 365.006962 | 430.074805 | 2235.36658 | 309.194229 | 265.518609 |
| Climate change, ecosystem quality, short term [PDF*m2*year] | 331.776259 | 734.556651 | 376.064066 | 731.310036 | 270.867442 | 667.400484 | 220.790182 | 525.029292 | 116.827432 | 218.690986 | 647.535032 | 100.900612 | 88.618966 |
| Climate change, human health, long term [DALY] | 0.003048 | 0.011598 | 0.003734 | 0.011531 | 0.002381 | 0.010537 | 0.002031 | 0.008237 | 0.001664 | 0.001954 | 0.01018 | 0.001413 | 0.001211 |
| Climate change, human health, short term [DALY] | 0.001536 | 0.003395 | 0.001741 | 0.00338 | 0.001254 | 0.003084 | 0.001022 | 0.002427 | 0.00054 | 0.001013 | 0.002993 | 0.000466 | 0.00041 |
| Freshwater acidification [PDF*m2*year] | 31.081043 | 24.039294 | 34.518618 | 25.230748 | 28.052882 | 22.698943 | 24.128869 | 21.952999 | 17.023313 | 24.883886 | 22.047068 | 14.80311 | 12.434463 |
| Freshwater ecotoxicity, long term [PDF*m2*year] | 27592.562362 | 21422.357196 | 43867.152997 | 25850.886709 | 29433.333428 | 21735.944893 | 32790.821706 | 38860.582574 | 98500.282176 | 33868.137987 | 22234.550704 | 95111.025886 | 81286.347112 |
| Freshwater ecotoxicity, short term [PDF*m2*year] | 34.873568 | 59.064663 | 47.610189 | 61.506233 | 35.072678 | 57.459001 | 33.972235 | 57.688222 | 61.116608 | 36.369132 | 58.006996 | 58.608523 | 52.251955 |
| Freshwater eutrophication [PDF*m2*year] | 2.097111 | 1.75461 | 2.183071 | 1.784145 | 1.785157 | 1.607098 | 1.380234 | 1.276723 | 1.268772 | 1.43453 | 1.565495 | 1.138418 | 0.911218 |
| Human toxicity cancer, long term [DALY] | 0.000008 | 0.00001 | 0.000013 | 0.000011 | 0.000008 | 0.00001 | 0.00001 | 0.000015 | 0.000033 | 0.00001 | 0.00001 | 0.000032 | 0.000028 |
| Human toxicity cancer, short term [DALY] | 0.000312 | 0.00019 | 0.000653 | 0.000281 | 0.00035 | 0.000189 | 0.000395 | 0.000542 | 0.001611 | 0.000468 | 0.000189 | 0.001581 | 0.001325 |
| Human toxicity non-cancer, long term [DALY] | 0.000271 | 0.000309 | 0.000446 | 0.000348 | 0.000298 | 0.000306 | 0.000337 | 0.000472 | 0.001087 | 0.00036 | 0.000308 | 0.001051 | 0.000912 |
| Human toxicity non-cancer, short term [DALY] | 0.000415 | 0.000326 | 0.000637 | 0.000416 | 0.000423 | 0.000323 | 0.000463 | 0.000519 | 0.001174 | 0.00046 | 0.000322 | 0.001123 | 0.000981 |
| Ionizing radiation, ecosystem quality [PDF*m2*year] | 0.0 | 0.000001 | 0.000001 | 0.000001 | 0.0 | 0.000001 | 0.0 | 0.000001 | 0.000002 | 0.0 | 0.000001 | 0.000001 | 0.000001 |
| Ionizing radiation, human health [DALY] | 0.000002 | 0.000006 | 0.000019 | 0.000009 | 0.000003 | 0.000005 | 0.000004 | 0.000013 | 0.000034 | 0.000003 | 0.000005 | 0.000014 | 0.000012 |
| Land occupation, biodiversity [PDF*m2*year] | 1500.540662 | 27.254248 | 1499.388059 | 32.752366 | 1347.943393 | 30.132869 | 1011.121771 | 59.279252 | 143.817896 | 1245.445263 | 34.410929 | 117.585041 | 102.625729 |
| Land transformation, biodiversity [PDF*m2*year] | 119.109439 | 217.152567 | 217.65296 | 232.839318 | 118.072275 | 200.862553 | 122.953719 | 267.416224 | 463.686864 | 129.693561 | 194.437078 | 411.408682 | 354.130341 |
| Marine acidification, long term [PDF*m2*year] | 130.026283 | 615.432511 | 164.161672 | 611.176698 | 98.868893 | 558.450784 | 86.58912 | 434.963257 | 80.203682 | 81.378647 | 539.978008 | 67.313715 | 58.10472 |
| Marine acidification, short term [PDF*m2*year] | 14.114696 | 66.807082 | 17.820182 | 66.359016 | 10.732479 | 60.680695 | 9.399477 | 47.221807 | 8.706321 | 8.833867 | 58.624928 | 7.307081 | 6.30742 |
| Marine eutrophication [PDF*m2*year] | 8.193289 | 4.316892 | 9.045889 | 4.776261 | 7.518437 | 4.176407 | 6.188904 | 4.059177 | 2.638021 | 6.799504 | 4.085326 | 2.335045 | 2.000978 |
| Ozone layer depletion [DALY] | 0.0 | 0.000002 | 0.0 | 0.000002 | 0.0 | 0.000002 | 0.0 | 0.000001 | 0.0 | 0.0 | 0.000002 | 0.0 | 0.0 |
| Particulate matter formation [DALY] | 0.001444 | 0.000757 | 0.001652 | 0.000817 | 0.00128 | 0.000707 | 0.001084 | 0.000776 | 0.000961 | 0.001128 | 0.000691 | 0.000826 | 0.00071 |
| Photochemical oxidant formation [DALY] | 0.000001 | 0.000001 | 0.000001 | 0.000001 | 0.000001 | 0.000001 | 0.000001 | 0.000001 | 0.0 | 0.000001 | 0.000001 | 0.0 | 0.0 |
| Terrestrial acidification [PDF*m2*year] | 266.486161 | 171.206096 | 289.990889 | 179.796967 | 238.543799 | 161.644254 | 200.058684 | 155.19787 | 111.139447 | 207.76489 | 157.152922 | 95.332417 | 80.017251 |
| Thermally polluted water [PDF*m2*year] | 0.002369 | 0.001511 | 0.009269 | 0.002845 | 0.002272 | 0.001166 | 0.002593 | 0.004705 | 0.014479 | 0.00221 | 0.001057 | 0.006893 | 0.005889 |
| Water availability, freshwater ecosystem [PDF*m2*year] | 0.031527 | 0.00779 | 0.060588 | 0.013706 | 0.028111 | 0.006248 | 0.025257 | 0.022242 | 0.070775 | 0.024987 | 0.005766 | 0.039293 | 0.03347 |
| Water availability, human health [DALY] | 0.005918 | 0.000448 | 0.006971 | 0.000693 | 0.005176 | 0.000411 | 0.004153 | 0.001391 | 0.005217 | 0.004464 | 0.000412 | 0.004344 | 0.003687 |
| Water availability, terrestrial ecosystem [PDF*m2*year] | 0.888509 | 0.04815 | 0.89538 | 0.055749 | 0.772545 | 0.047031 | 0.587296 | 0.062724 | 0.220154 | 0.647582 | 0.047143 | 0.195259 | 0.164052 |
In this section we present dataframes with midpoint characterized results for each SSP scenario and mission type and produce one table to be included in the word file supporting the article.
Table for article: scenario=NDC, fuel=Kerosene or Hydrogen
# heatmap figure with NDC, kerosene all time horizons
heatmap_NDC_notSAF_typical=Medians_midpoint[((Medians_midpoint['Fuel']=='H2')|(Medians_midpoint['Fuel']=='Kerosene'))& (Medians_midpoint['Mission'] =='Typical')&(Medians_midpoint['Scenario'] =='NDC')]
#2030
heatmap_NDC_notSAF_typical_2030=heatmap_NDC_notSAF_typical[(heatmap_NDC_notSAF_typical['Year']=='2030') ]
heatmap_NDC_notSAF_typical_2030['Category+Unit']=heatmap_NDC_notSAF_typical_2030['Category']+' ['+heatmap_NDC_notSAF_typical_2030['Unit']+']'
#2040
heatmap_NDC_notSAF_typical_2040=heatmap_NDC_notSAF_typical[(heatmap_NDC_notSAF_typical['Year']=='2040')]
heatmap_NDC_notSAF_typical_2040['Category+Unit']=heatmap_NDC_notSAF_typical_2040['Category']+' ['+heatmap_NDC_notSAF_typical_2040['Unit']+']'
#2050
heatmap_NDC_notSAF_typical_2050=heatmap_NDC_notSAF_typical[(heatmap_NDC_notSAF_typical['Year']=='2050')]
heatmap_NDC_notSAF_typical_2050['Category+Unit']=heatmap_NDC_notSAF_typical_2050['Category']+' ['+heatmap_NDC_notSAF_typical_2050['Unit']+']'
C:\Users\kmadu\AppData\Local\Temp\ipykernel_17960\1675157802.py:5: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame. Try using .loc[row_indexer,col_indexer] = value instead See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy heatmap_NDC_notSAF_typical_2030['Category+Unit']=heatmap_NDC_notSAF_typical_2030['Category']+' ['+heatmap_NDC_notSAF_typical_2030['Unit']+']' C:\Users\kmadu\AppData\Local\Temp\ipykernel_17960\1675157802.py:8: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame. Try using .loc[row_indexer,col_indexer] = value instead See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy heatmap_NDC_notSAF_typical_2040['Category+Unit']=heatmap_NDC_notSAF_typical_2040['Category']+' ['+heatmap_NDC_notSAF_typical_2040['Unit']+']' C:\Users\kmadu\AppData\Local\Temp\ipykernel_17960\1675157802.py:11: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame. Try using .loc[row_indexer,col_indexer] = value instead See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy heatmap_NDC_notSAF_typical_2050['Category+Unit']=heatmap_NDC_notSAF_typical_2050['Category']+' ['+heatmap_NDC_notSAF_typical_2050['Unit']+']'
results_2030=heatmap_NDC_notSAF_typical_2030.pivot('Category+Unit','Configuration','Value')
results_2040=heatmap_NDC_notSAF_typical_2040.pivot('Category+Unit','Configuration','Value')
results_2050=heatmap_NDC_notSAF_typical_2050.pivot('Category+Unit','Configuration','Value')
C:\Users\kmadu\AppData\Local\Temp\ipykernel_17960\1843804839.py:1: FutureWarning: In a future version of pandas all arguments of DataFrame.pivot will be keyword-only.
results_2030=heatmap_NDC_notSAF_typical_2030.pivot('Category+Unit','Configuration','Value')
C:\Users\kmadu\AppData\Local\Temp\ipykernel_17960\1843804839.py:2: FutureWarning: In a future version of pandas all arguments of DataFrame.pivot will be keyword-only.
results_2040=heatmap_NDC_notSAF_typical_2040.pivot('Category+Unit','Configuration','Value')
C:\Users\kmadu\AppData\Local\Temp\ipykernel_17960\1843804839.py:3: FutureWarning: In a future version of pandas all arguments of DataFrame.pivot will be keyword-only.
results_2050=heatmap_NDC_notSAF_typical_2050.pivot('Category+Unit','Configuration','Value')
#conditional formatting with Dataframes
results_2030=results_2030.rename(columns = {'GT-bat':'GT-bat (2030)','Conventional':'Conventional (2030)'})
#results_2030=results_2030.style.background_gradient(axis=None)
results_2040=results_2040.rename(columns = {'GT-bat':'GT-bat (2040)','Conventional':'Conventional (2040)','PEMFC-bat':'PEMFC-bat (2040)'})
results_2050=results_2050.rename(columns = {'SOFC-bat':'SOFC-bat (2050)','Conventional':'Conventional (2050)','PEMFC-bat':'PEMFC-bat (2050)'})
all_midpoint_medians=results_2030.join(results_2040).join(results_2050)
all_midpoint_medians=all_midpoint_medians.astype(float).style.background_gradient(axis=1).format('{:.2E}')
all_midpoint_medians
#ADD units
#units_IWP_mid=['kg CO2eq.','kg CO2eq.','MJ dep.','kg dep.', 'kg NMVOCeq.','kg CFC-11eq.','CTUe','CTUh','CTUh','m3eq.','kg SO2eq.','kg SO2eq.','kg PO4eq.','kg Neq.', 'm2eq.', 'm2eq*yr.', 'kg PM2.5eq.', 'Bq C14eq.']
| Configuration | Conventional (2030) | GT-bat (2030) | Conventional (2040) | GT-bat (2040) | PEMFC-bat (2040) | Conventional (2050) | PEMFC-bat (2050) | SOFC-bat (2050) |
|---|---|---|---|---|---|---|---|---|
| Category+Unit | ||||||||
| Climate change, long term [kg CO2eq.] | 1.89E+03 | 1.59E+03 | 1.71E+03 | 1.09E+03 | 3.61E+02 | 1.64E+03 | 2.89E+02 | 2.71E+02 |
| Climate change, short term [kg CO2eq.] | 1.93E+03 | 1.63E+03 | 1.75E+03 | 1.13E+03 | 3.98E+02 | 1.68E+03 | 3.23E+02 | 3.03E+02 |
| Fossil and nuclear energy use [MJ dep.] | 2.86E+04 | 2.65E+04 | 2.60E+04 | 1.82E+04 | 1.31E+04 | 2.46E+04 | 7.65E+03 | 6.76E+03 |
| Freshwater acidification [kg SO2eq.] | 1.52E-05 | 1.23E-05 | 1.42E-05 | 1.05E-05 | 9.73E-06 | 1.38E-05 | 8.11E-06 | 7.21E-06 |
| Freshwater ecotoxicity [CTUe] | 3.62E+07 | 4.28E+07 | 3.72E+07 | 4.66E+07 | 7.75E+07 | 3.77E+07 | 7.65E+07 | 6.93E+07 |
| Freshwater eutrophication [kg PO4eq.] | 6.79E-02 | 5.77E-02 | 6.17E-02 | 3.92E-02 | 3.44E-02 | 5.96E-02 | 3.20E-02 | 2.57E-02 |
| Human toxicity cancer [CTUh] | 5.59E-05 | 7.62E-05 | 5.68E-05 | 7.93E-05 | 1.56E-04 | 5.54E-05 | 1.49E-04 | 1.32E-04 |
| Human toxicity non cancer [CTUh] | 2.73E-04 | 3.20E-04 | 2.72E-04 | 3.27E-04 | 5.40E-04 | 2.70E-04 | 5.18E-04 | 4.67E-04 |
| Ionizing radiations [Bq C14eq.] | 1.51E+04 | 2.82E+04 | 1.34E+04 | 1.88E+04 | 4.88E+04 | 1.18E+04 | 2.21E+04 | 1.85E+04 |
| Land occupation, biodiversity [m2eq*yr.] | 3.24E+01 | 3.99E+01 | 3.28E+01 | 3.94E+01 | 6.66E+01 | 3.25E+01 | 5.78E+01 | 5.25E+01 |
| Land transformation, biodiversity [m2eq.] | 4.55E-01 | 4.60E-01 | 4.38E-01 | 4.11E-01 | 6.02E-01 | 4.23E-01 | 5.62E-01 | 4.89E-01 |
| Marine eutrophication [kg Neq.] | 1.53E-01 | 1.16E-01 | 1.48E-01 | 9.20E-02 | 8.76E-02 | 1.44E-01 | 8.10E-02 | 7.44E-02 |
| Mineral resources use [kg dep.] | 5.38E+01 | 5.51E+01 | 5.38E+01 | 5.49E+01 | 5.63E+01 | 5.38E+01 | 5.60E+01 | 5.60E+01 |
| Ozone Layer Depletion [kg CFC-11eq.] | 4.28E-04 | 3.44E-04 | 3.88E-04 | 2.30E-04 | 4.77E-05 | 3.74E-04 | 6.68E-05 | 5.27E-05 |
| Particulate matter formation [kg PM2.5eq.] | 3.67E-01 | 3.56E-01 | 3.40E-01 | 3.11E-01 | 3.76E-01 | 3.23E-01 | 3.10E-01 | 2.83E-01 |
| Photochemical oxidant formation [kg NMVOCeq.] | 7.50E+00 | 5.09E+00 | 7.04E+00 | 3.67E+00 | 2.00E+00 | 6.81E+00 | 1.61E+00 | 1.44E+00 |
| Terrestrial acidification [kg SO2eq.] | 1.27E-02 | 1.01E-02 | 1.19E-02 | 8.61E-03 | 7.98E-03 | 1.15E-02 | 6.64E-03 | 5.91E-03 |
| Water scarcity [m3eq.] | 1.51E+02 | 2.46E+02 | 1.50E+02 | 2.30E+02 | 5.98E+02 | 1.36E+02 | 4.99E+02 | 4.28E+02 |
Medians_midpoint_all_results=Medians_midpoint
Medians_midpoint_all_results['Summary']=Medians_midpoint_all_results['Year']+" "+Medians_midpoint_all_results['Configuration']+' ('+Medians_midpoint_all_results['Fuel']+')'
#Medians_midpoint_all_results=Medians_midpoint_all_results.drop(columns=['Year','Configuration','Fuel'])
Medians_midpoint_all_results_NDC=Medians_midpoint_all_results[Medians_midpoint_all_results['Scenario']=='NDC']
Typical Mission
Medians_midpoint_all_results_NDC_typical=Medians_midpoint_all_results_NDC[Medians_midpoint_all_results_NDC['Mission']=='Typical']
NDC_typical=Medians_midpoint_all_results_NDC_typical.pivot('Category and unit','Summary','Value').astype(float).style.format('{:.2E}')
NDC_typical
C:\Users\kmadu\AppData\Local\Temp\ipykernel_17960\1701558939.py:2: FutureWarning: In a future version of pandas all arguments of DataFrame.pivot will be keyword-only.
NDC_typical=Medians_midpoint_all_results_NDC_typical.pivot('Category and unit','Summary','Value').astype(float).style.format('{:.2E}')
| Summary | 2030 Conventional (AAF) | 2030 Conventional (ILUC) | 2030 Conventional (Kerosene) | 2030 GT-bat (AAF) | 2030 GT-bat (ILUC) | 2030 GT-bat (Kerosene) | 2040 Conventional (AAF) | 2040 Conventional (ILUC) | 2040 Conventional (Kerosene) | 2040 GT-bat (AAF) | 2040 GT-bat (ILUC) | 2040 GT-bat (Kerosene) | 2040 PEMFC-bat (H2) | 2050 Conventional (AAF) | 2050 Conventional (ILUC) | 2050 Conventional (Kerosene) | 2050 PEMFC-bat (H2) | 2050 SOFC-bat (H2) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Category and unit | ||||||||||||||||||
| Climate change, long term [kg CO2eq.] | 8.67E+02 | 1.14E+03 | 1.89E+03 | 8.68E+02 | 1.09E+03 | 1.59E+03 | 7.24E+02 | 6.72E+02 | 1.71E+03 | 5.38E+02 | 9.62E+02 | 1.09E+03 | 3.61E+02 | 5.75E+02 | 7.52E+02 | 1.64E+03 | 2.89E+02 | 2.71E+02 |
| Climate change, short term [kg CO2eq.] | 9.74E+02 | 1.25E+03 | 1.93E+03 | 9.66E+02 | 1.18E+03 | 1.63E+03 | 8.19E+02 | 7.39E+02 | 1.75E+03 | 6.05E+02 | 1.06E+03 | 1.13E+03 | 3.98E+02 | 6.53E+02 | 8.30E+02 | 1.68E+03 | 3.23E+02 | 3.03E+02 |
| Fossil and nuclear energy use [MJ dep.] | 9.75E+03 | 9.75E+03 | 2.86E+04 | 1.51E+04 | 1.51E+04 | 2.65E+04 | 8.70E+03 | 8.53E+03 | 2.60E+04 | 8.53E+03 | 8.70E+03 | 1.82E+04 | 1.31E+04 | 7.09E+03 | 7.09E+03 | 2.46E+04 | 7.65E+03 | 6.76E+03 |
| Freshwater acidification [kg SO2eq.] | 1.86E-05 | 1.85E-05 | 1.52E-05 | 1.57E-05 | 1.57E-05 | 1.23E-05 | 1.68E-05 | 1.19E-05 | 1.42E-05 | 1.19E-05 | 1.68E-05 | 1.05E-05 | 9.73E-06 | 1.50E-05 | 1.51E-05 | 1.38E-05 | 8.11E-06 | 7.21E-06 |
| Freshwater ecotoxicity [CTUe] | 4.08E+07 | 4.08E+07 | 3.62E+07 | 5.07E+07 | 5.07E+07 | 4.28E+07 | 4.29E+07 | 4.97E+07 | 3.72E+07 | 4.97E+07 | 4.29E+07 | 4.66E+07 | 7.75E+07 | 4.64E+07 | 4.64E+07 | 3.77E+07 | 7.65E+07 | 6.93E+07 |
| Freshwater eutrophication [kg PO4eq.] | 7.99E-02 | 7.99E-02 | 6.79E-02 | 6.91E-02 | 6.91E-02 | 5.77E-02 | 6.82E-02 | 4.31E-02 | 6.17E-02 | 4.31E-02 | 6.82E-02 | 3.92E-02 | 3.44E-02 | 5.50E-02 | 5.50E-02 | 5.96E-02 | 3.20E-02 | 2.57E-02 |
| Human toxicity cancer [CTUh] | 7.42E-05 | 7.42E-05 | 5.59E-05 | 1.03E-04 | 1.03E-04 | 7.62E-05 | 7.84E-05 | 9.11E-05 | 5.68E-05 | 9.11E-05 | 7.84E-05 | 7.93E-05 | 1.56E-04 | 8.99E-05 | 8.99E-05 | 5.54E-05 | 1.49E-04 | 1.32E-04 |
| Human toxicity non cancer [CTUh] | 2.94E-04 | 2.94E-04 | 2.73E-04 | 3.66E-04 | 3.66E-04 | 3.20E-04 | 2.99E-04 | 3.41E-04 | 2.72E-04 | 3.41E-04 | 2.99E-04 | 3.27E-04 | 5.40E-04 | 3.14E-04 | 3.14E-04 | 2.70E-04 | 5.18E-04 | 4.67E-04 |
| Ionizing radiations [Bq C14eq.] | 7.29E+03 | 7.29E+03 | 1.51E+04 | 3.67E+04 | 3.67E+04 | 2.82E+04 | 8.77E+03 | 1.61E+04 | 1.34E+04 | 1.61E+04 | 8.77E+03 | 1.88E+04 | 4.88E+04 | 8.08E+03 | 8.08E+03 | 1.18E+04 | 2.21E+04 | 1.85E+04 |
| Land occupation, biodiversity [m2eq*yr.] | 9.32E+02 | 9.32E+02 | 3.24E+01 | 7.60E+02 | 7.60E+02 | 3.99E+01 | 8.33E+02 | 4.87E+02 | 3.28E+01 | 4.87E+02 | 8.33E+02 | 3.94E+01 | 6.66E+01 | 7.64E+02 | 7.64E+02 | 3.25E+01 | 5.78E+01 | 5.25E+01 |
| Land transformation, biodiversity [m2eq.] | 2.87E-01 | 2.87E-01 | 4.55E-01 | 3.93E-01 | 3.93E-01 | 4.60E-01 | 2.95E-01 | 3.31E-01 | 4.38E-01 | 3.31E-01 | 2.95E-01 | 4.11E-01 | 6.02E-01 | 3.16E-01 | 3.16E-01 | 4.23E-01 | 5.62E-01 | 4.89E-01 |
| Marine eutrophication [kg Neq.] | 2.88E-01 | 2.87E-01 | 1.53E-01 | 2.31E-01 | 2.30E-01 | 1.16E-01 | 2.63E-01 | 1.55E-01 | 1.48E-01 | 1.56E-01 | 2.63E-01 | 9.20E-02 | 8.76E-02 | 2.38E-01 | 2.37E-01 | 1.44E-01 | 8.10E-02 | 7.44E-02 |
| Mineral resources use [kg dep.] | 5.53E+01 | 5.53E+01 | 5.38E+01 | 5.67E+01 | 5.67E+01 | 5.51E+01 | 5.52E+01 | 5.57E+01 | 5.38E+01 | 5.57E+01 | 5.52E+01 | 5.49E+01 | 5.63E+01 | 5.52E+01 | 5.52E+01 | 5.38E+01 | 5.60E+01 | 5.60E+01 |
| Ozone Layer Depletion [kg CFC-11eq.] | 7.80E-05 | 7.80E-05 | 4.28E-04 | 7.85E-05 | 7.85E-05 | 3.44E-04 | 6.39E-05 | 4.94E-05 | 3.88E-04 | 4.94E-05 | 6.39E-05 | 2.30E-04 | 4.77E-05 | 4.83E-05 | 4.83E-05 | 3.74E-04 | 6.68E-05 | 5.27E-05 |
| Particulate matter formation [kg PM2.5eq.] | 6.18E-01 | 6.18E-01 | 3.67E-01 | 5.84E-01 | 5.84E-01 | 3.56E-01 | 5.46E-01 | 4.24E-01 | 3.40E-01 | 4.25E-01 | 5.47E-01 | 3.11E-01 | 3.76E-01 | 4.81E-01 | 4.81E-01 | 3.23E-01 | 3.10E-01 | 2.83E-01 |
| Photochemical oxidant formation [kg NMVOCeq.] | 8.44E+00 | 8.41E+00 | 7.50E+00 | 6.18E+00 | 6.17E+00 | 5.09E+00 | 7.75E+00 | 4.05E+00 | 7.04E+00 | 4.05E+00 | 7.73E+00 | 3.67E+00 | 2.00E+00 | 7.12E+00 | 7.11E+00 | 6.81E+00 | 1.61E+00 | 1.44E+00 |
| Terrestrial acidification [kg SO2eq.] | 1.90E-02 | 1.90E-02 | 1.27E-02 | 1.58E-02 | 1.58E-02 | 1.01E-02 | 1.69E-02 | 1.15E-02 | 1.19E-02 | 1.15E-02 | 1.70E-02 | 8.61E-03 | 7.98E-03 | 1.49E-02 | 1.49E-02 | 1.15E-02 | 6.64E-03 | 5.91E-03 |
| Water scarcity [m3eq.] | 1.48E+03 | 1.48E+03 | 1.51E+02 | 1.37E+03 | 1.37E+03 | 2.46E+02 | 1.28E+03 | 8.63E+02 | 1.50E+02 | 8.63E+02 | 1.28E+03 | 2.30E+02 | 5.98E+02 | 1.07E+03 | 1.07E+03 | 1.36E+02 | 4.99E+02 | 4.28E+02 |
Design Mission
Medians_midpoint_all_results_NDC_design=Medians_midpoint_all_results_NDC[Medians_midpoint_all_results_NDC['Mission']=='Design']
Medians_midpoint_all_results_NDC_design=Medians_midpoint_all_results_NDC[Medians_midpoint_all_results_NDC['Mission']=='Design']
NDC_design=Medians_midpoint_all_results_NDC_design.pivot('Category and unit','Summary','Value').astype(float).style.format('{:.2E}')
NDC_design
C:\Users\kmadu\AppData\Local\Temp\ipykernel_17960\1504253113.py:3: FutureWarning: In a future version of pandas all arguments of DataFrame.pivot will be keyword-only.
NDC_design=Medians_midpoint_all_results_NDC_design.pivot('Category and unit','Summary','Value').astype(float).style.format('{:.2E}')
| Summary | 2030 Conventional (AAF) | 2030 Conventional (ILUC) | 2030 Conventional (Kerosene) | 2030 GT-bat (AAF) | 2030 GT-bat (ILUC) | 2030 GT-bat (Kerosene) | 2040 Conventional (AAF) | 2040 Conventional (ILUC) | 2040 Conventional (Kerosene) | 2040 GT-bat (AAF) | 2040 GT-bat (ILUC) | 2040 GT-bat (Kerosene) | 2040 PEMFC-bat (H2) | 2050 Conventional (AAF) | 2050 Conventional (ILUC) | 2050 Conventional (Kerosene) | 2050 PEMFC-bat (H2) | 2050 SOFC-bat (H2) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Category and unit | ||||||||||||||||||
| Climate change, long term [kg CO2eq.] | 1.75E+03 | 2.42E+03 | 4.14E+03 | 2.09E+03 | 2.74E+03 | 4.15E+03 | 1.43E+03 | 1.59E+03 | 3.75E+03 | 1.17E+03 | 2.00E+03 | 2.97E+03 | 7.54E+02 | 1.14E+03 | 7.52E+02 | 3.62E+03 | 5.81E+02 | 5.15E+02 |
| Climate change, short term [kg CO2eq.] | 1.97E+03 | 2.64E+03 | 4.21E+03 | 2.32E+03 | 2.97E+03 | 4.22E+03 | 1.62E+03 | 1.74E+03 | 3.81E+03 | 1.32E+03 | 2.19E+03 | 3.02E+03 | 8.05E+02 | 1.29E+03 | 8.30E+02 | 3.67E+03 | 6.29E+02 | 5.59E+02 |
| Fossil and nuclear energy use [MJ dep.] | 1.89E+04 | 1.89E+04 | 6.23E+04 | 3.71E+04 | 3.71E+04 | 6.45E+04 | 1.64E+04 | 1.52E+04 | 5.65E+04 | 1.52E+04 | 1.64E+04 | 5.21E+04 | 4.02E+04 | 1.35E+04 | 7.09E+03 | 5.40E+04 | 2.03E+04 | 1.74E+04 |
| Freshwater acidification [kg SO2eq.] | 3.90E-05 | 3.91E-05 | 3.12E-05 | 4.37E-05 | 4.37E-05 | 3.27E-05 | 3.51E-05 | 3.01E-05 | 2.92E-05 | 3.02E-05 | 3.50E-05 | 2.81E-05 | 2.08E-05 | 3.13E-05 | 1.51E-05 | 2.81E-05 | 1.75E-05 | 1.48E-05 |
| Freshwater ecotoxicity [CTUe] | 4.85E+07 | 4.85E+07 | 3.78E+07 | 7.71E+07 | 7.71E+07 | 4.55E+07 | 5.13E+07 | 5.71E+07 | 3.81E+07 | 5.71E+07 | 5.13E+07 | 6.80E+07 | 1.75E+08 | 5.89E+07 | 4.64E+07 | 3.88E+07 | 1.64E+08 | 1.41E+08 |
| Freshwater eutrophication [kg PO4eq.] | 1.83E-01 | 1.83E-01 | 1.54E-01 | 1.91E-01 | 1.91E-01 | 1.56E-01 | 1.55E-01 | 1.20E-01 | 1.41E-01 | 1.20E-01 | 1.55E-01 | 1.11E-01 | 1.11E-01 | 1.25E-01 | 5.50E-02 | 1.36E-01 | 9.91E-02 | 7.83E-02 |
| Human toxicity cancer [CTUh] | 1.14E-04 | 1.14E-04 | 7.19E-05 | 1.99E-04 | 1.99E-04 | 9.70E-05 | 1.20E-04 | 1.28E-04 | 7.02E-05 | 1.28E-04 | 1.20E-04 | 1.57E-04 | 4.27E-04 | 1.48E-04 | 8.99E-05 | 6.88E-05 | 4.02E-04 | 3.52E-04 |
| Human toxicity non cancer [CTUh] | 3.53E-04 | 3.53E-04 | 3.05E-04 | 5.52E-04 | 5.52E-04 | 3.68E-04 | 3.62E-04 | 3.97E-04 | 2.99E-04 | 3.97E-04 | 3.62E-04 | 4.77E-04 | 1.19E-03 | 3.99E-04 | 3.14E-04 | 2.97E-04 | 1.09E-03 | 9.37E-04 |
| Ionizing radiations [Bq C14eq.] | 1.20E+04 | 1.20E+04 | 3.01E+04 | 9.63E+04 | 9.63E+04 | 4.50E+04 | 1.57E+04 | 2.22E+04 | 2.66E+04 | 2.22E+04 | 1.57E+04 | 6.72E+04 | 1.78E+05 | 1.56E+04 | 8.08E+03 | 2.45E+04 | 7.47E+04 | 6.30E+04 |
| Land occupation, biodiversity [m2eq*yr.] | 2.13E+03 | 2.13E+03 | 3.83E+01 | 2.15E+03 | 2.15E+03 | 4.70E+01 | 1.90E+03 | 1.42E+03 | 3.81E+01 | 1.42E+03 | 1.90E+03 | 7.21E+01 | 1.71E+02 | 1.74E+03 | 7.64E+02 | 3.80E+01 | 1.34E+02 | 1.16E+02 |
| Land transformation, biodiversity [m2eq.] | 4.69E-01 | 4.69E-01 | 8.56E-01 | 8.34E-01 | 8.34E-01 | 9.15E-01 | 4.69E-01 | 4.83E-01 | 8.01E-01 | 4.83E-01 | 4.69E-01 | 1.05E+00 | 1.80E+00 | 5.26E-01 | 3.16E-01 | 7.75E-01 | 1.62E+00 | 1.38E+00 |
| Marine eutrophication [kg Neq.] | 6.58E-01 | 6.57E-01 | 3.47E-01 | 7.27E-01 | 7.29E-01 | 3.85E-01 | 5.99E-01 | 4.93E-01 | 3.34E-01 | 4.93E-01 | 5.97E-01 | 3.23E-01 | 2.15E-01 | 5.39E-01 | 2.37E-01 | 3.25E-01 | 1.82E-01 | 1.60E-01 |
| Mineral resources use [kg dep.] | 5.89E+01 | 5.89E+01 | 5.55E+01 | 6.30E+01 | 6.30E+01 | 5.75E+01 | 5.85E+01 | 5.86E+01 | 5.53E+01 | 5.86E+01 | 5.85E+01 | 5.82E+01 | 6.41E+01 | 5.85E+01 | 5.52E+01 | 5.53E+01 | 6.29E+01 | 6.19E+01 |
| Ozone Layer Depletion [kg CFC-11eq.] | 1.60E-04 | 1.60E-04 | 9.69E-04 | 1.92E-04 | 1.92E-04 | 9.50E-04 | 1.30E-04 | 1.07E-04 | 8.85E-04 | 1.07E-04 | 1.30E-04 | 6.77E-04 | 1.17E-04 | 9.77E-05 | 4.83E-05 | 8.53E-04 | 1.17E-04 | 9.34E-05 |
| Particulate matter formation [kg PM2.5eq.] | 1.23E+00 | 1.24E+00 | 6.57E-01 | 1.43E+00 | 1.43E+00 | 7.13E-01 | 1.08E+00 | 9.13E-01 | 6.00E-01 | 9.14E-01 | 1.08E+00 | 6.65E-01 | 8.54E-01 | 9.38E-01 | 4.81E-01 | 5.74E-01 | 6.84E-01 | 5.90E-01 |
| Photochemical oxidant formation [kg NMVOCeq.] | 1.95E+01 | 1.96E+01 | 1.74E+01 | 2.18E+01 | 2.19E+01 | 1.83E+01 | 1.81E+01 | 1.51E+01 | 1.64E+01 | 1.51E+01 | 1.80E+01 | 1.46E+01 | 4.93E+00 | 1.67E+01 | 7.11E+00 | 1.59E+01 | 3.68E+00 | 3.18E+00 |
| Terrestrial acidification [kg SO2eq.] | 4.09E-02 | 4.09E-02 | 2.62E-02 | 4.48E-02 | 4.48E-02 | 2.75E-02 | 3.63E-02 | 3.04E-02 | 2.45E-02 | 3.04E-02 | 3.63E-02 | 2.36E-02 | 1.73E-02 | 3.17E-02 | 1.49E-02 | 2.37E-02 | 1.44E-02 | 1.22E-02 |
| Water scarcity [m3eq.] | 3.25E+03 | 3.25E+03 | 1.82E+02 | 3.69E+03 | 3.69E+03 | 2.88E+02 | 2.79E+03 | 2.18E+03 | 1.67E+02 | 2.18E+03 | 2.79E+03 | 5.27E+02 | 1.82E+03 | 2.30E+03 | 1.07E+03 | 1.53E+02 | 1.42E+03 | 1.20E+03 |
Medians_midpoint_all_results_Base=Medians_midpoint_all_results[Medians_midpoint_all_results['Scenario']=='Base']
Typical Mission
Medians_midpoint_all_results_Base_typical=Medians_midpoint_all_results_Base[Medians_midpoint_all_results_Base['Mission']=='Typical']
Base_typical=Medians_midpoint_all_results_Base_typical.pivot('Category and unit','Summary','Value').astype(float).style.format('{:.2E}')
Base_typical
C:\Users\kmadu\AppData\Local\Temp\ipykernel_17960\3265215117.py:2: FutureWarning: In a future version of pandas all arguments of DataFrame.pivot will be keyword-only.
Base_typical=Medians_midpoint_all_results_Base_typical.pivot('Category and unit','Summary','Value').astype(float).style.format('{:.2E}')
| Summary | 2030 Conventional (AAF) | 2030 Conventional (Kerosene) | 2030 GT-bat (AAF) | 2030 GT-bat (Kerosene) | 2040 Conventional (AAF) | 2040 Conventional (Kerosene) | 2040 GT-bat (AAF) | 2040 GT-bat (Kerosene) | 2040 PEMFC-bat (H2) | 2050 Conventional (AAF) | 2050 Conventional (Kerosene) | 2050 PEMFC-bat (H2) | 2050 SOFC-bat (H2) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Category and unit | |||||||||||||
| Climate change, long term [kg CO2eq.] | 9.29E+02 | 1.95E+03 | 1.21E+03 | 1.79E+03 | 8.43E+02 | 1.79E+03 | 7.34E+02 | 1.27E+03 | 9.28E+02 | 6.90E+02 | 1.70E+03 | 5.31E+02 | 4.73E+02 |
| Climate change, short term [kg CO2eq.] | 1.04E+03 | 1.99E+03 | 1.32E+03 | 1.84E+03 | 9.45E+02 | 1.83E+03 | 8.17E+02 | 1.31E+03 | 9.93E+02 | 7.75E+02 | 1.75E+03 | 5.84E+02 | 5.20E+02 |
| Fossil and nuclear energy use [MJ dep.] | 1.06E+04 | 2.93E+04 | 2.02E+04 | 2.94E+04 | 1.04E+04 | 2.68E+04 | 1.14E+04 | 2.06E+04 | 2.22E+04 | 8.68E+03 | 2.53E+04 | 1.18E+04 | 1.02E+04 |
| Freshwater acidification [kg SO2eq.] | 1.89E-05 | 1.54E-05 | 1.67E-05 | 1.29E-05 | 1.71E-05 | 1.44E-05 | 1.24E-05 | 1.08E-05 | 1.09E-05 | 1.52E-05 | 1.39E-05 | 8.32E-06 | 7.40E-06 |
| Freshwater ecotoxicity [CTUe] | 4.14E+07 | 3.66E+07 | 5.20E+07 | 4.35E+07 | 4.34E+07 | 3.74E+07 | 5.00E+07 | 4.66E+07 | 7.78E+07 | 4.68E+07 | 3.79E+07 | 7.74E+07 | 6.94E+07 |
| Freshwater eutrophication [kg PO4eq.] | 8.00E-02 | 6.77E-02 | 6.90E-02 | 5.73E-02 | 6.79E-02 | 6.14E-02 | 4.26E-02 | 3.88E-02 | 3.35E-02 | 5.46E-02 | 5.98E-02 | 3.17E-02 | 2.57E-02 |
| Human toxicity cancer [CTUh] | 7.79E-05 | 5.89E-05 | 1.25E-04 | 8.83E-05 | 8.34E-05 | 5.92E-05 | 9.84E-05 | 8.50E-05 | 1.75E-04 | 9.30E-05 | 5.70E-05 | 1.54E-04 | 1.34E-04 |
| Human toxicity non cancer [CTUh] | 3.02E-04 | 2.79E-04 | 4.14E-04 | 3.48E-04 | 3.11E-04 | 2.79E-04 | 3.60E-04 | 3.41E-04 | 5.90E-04 | 3.22E-04 | 2.74E-04 | 5.29E-04 | 4.70E-04 |
| Ionizing radiations [Bq C14eq.] | 7.39E+03 | 1.53E+04 | 3.86E+04 | 2.91E+04 | 9.30E+03 | 1.35E+04 | 1.75E+04 | 1.99E+04 | 5.58E+04 | 8.71E+03 | 1.17E+04 | 2.53E+04 | 2.08E+04 |
| Land occupation, biodiversity [m2eq*yr.] | 9.31E+02 | 3.00E+01 | 7.51E+02 | 3.36E+01 | 8.30E+02 | 3.13E+01 | 4.85E+02 | 3.56E+01 | 5.48E+01 | 7.57E+02 | 3.12E+01 | 5.06E+01 | 4.62E+01 |
| Land transformation, biodiversity [m2eq.] | 2.83E-01 | 4.50E-01 | 3.63E-01 | 4.42E-01 | 2.92E-01 | 4.33E-01 | 3.16E-01 | 3.94E-01 | 5.48E-01 | 3.12E-01 | 4.19E-01 | 5.34E-01 | 4.59E-01 |
| Marine eutrophication [kg Neq.] | 2.90E-01 | 1.55E-01 | 2.37E-01 | 1.20E-01 | 2.65E-01 | 1.49E-01 | 1.59E-01 | 9.45E-02 | 9.06E-02 | 2.40E-01 | 1.46E-01 | 8.07E-02 | 7.20E-02 |
| Mineral resources use [kg dep.] | 5.53E+01 | 5.38E+01 | 5.67E+01 | 5.51E+01 | 5.52E+01 | 5.38E+01 | 5.55E+01 | 5.47E+01 | 5.60E+01 | 5.52E+01 | 5.38E+01 | 5.59E+01 | 5.60E+01 |
| Ozone Layer Depletion [kg CFC-11eq.] | 7.98E-05 | 4.29E-04 | 8.61E-05 | 3.47E-04 | 6.60E-05 | 3.88E-04 | 5.39E-05 | 2.34E-04 | 6.28E-05 | 5.02E-05 | 3.76E-04 | 7.52E-05 | 5.81E-05 |
| Particulate matter formation [kg PM2.5eq.] | 6.35E-01 | 3.79E-01 | 6.17E-01 | 3.77E-01 | 5.67E-01 | 3.54E-01 | 4.49E-01 | 3.29E-01 | 4.10E-01 | 4.92E-01 | 3.34E-01 | 3.20E-01 | 2.87E-01 |
| Photochemical oxidant formation [kg NMVOCeq.] | 8.56E+00 | 7.61E+00 | 6.67E+00 | 5.38E+00 | 7.88E+00 | 7.13E+00 | 4.31E+00 | 3.87E+00 | 2.73E+00 | 7.26E+00 | 6.86E+00 | 1.83E+00 | 1.63E+00 |
| Terrestrial acidification [kg SO2eq.] | 1.92E-02 | 1.28E-02 | 1.66E-02 | 1.06E-02 | 1.72E-02 | 1.20E-02 | 1.18E-02 | 8.86E-03 | 8.89E-03 | 1.50E-02 | 1.16E-02 | 6.78E-03 | 6.02E-03 |
| Water scarcity [m3eq.] | 1.49E+03 | 1.58E+02 | 1.48E+03 | 3.03E+02 | 1.30E+03 | 1.56E+02 | 9.09E+02 | 2.67E+02 | 7.53E+02 | 1.07E+03 | 1.36E+02 | 5.34E+02 | 4.53E+02 |
Design Mission
Medians_midpoint_all_results_Base_design=Medians_midpoint_all_results_Base[Medians_midpoint_all_results_Base['Mission']=='Design']
Medians_midpoint_all_results_Base_design=Medians_midpoint_all_results_Base[Medians_midpoint_all_results_Base['Mission']=='Design']
Base_design=Medians_midpoint_all_results_Base_design.pivot('Category and unit','Summary','Value').astype(float).style.format('{:.2E}')
Base_design
C:\Users\kmadu\AppData\Local\Temp\ipykernel_17960\263758391.py:3: FutureWarning: In a future version of pandas all arguments of DataFrame.pivot will be keyword-only.
Base_design=Medians_midpoint_all_results_Base_design.pivot('Category and unit','Summary','Value').astype(float).style.format('{:.2E}')
| Summary | 2030 Conventional (AAF) | 2030 Conventional (Kerosene) | 2030 GT-bat (AAF) | 2030 GT-bat (Kerosene) | 2040 Conventional (AAF) | 2040 Conventional (Kerosene) | 2040 GT-bat (AAF) | 2040 GT-bat (Kerosene) | 2040 PEMFC-bat (H2) | 2050 Conventional (AAF) | 2050 Conventional (Kerosene) | 2050 PEMFC-bat (H2) | 2050 SOFC-bat (H2) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Category and unit | |||||||||||||
| Climate change, long term [kg CO2eq.] | 1.86E+03 | 4.22E+03 | 3.00E+03 | 4.37E+03 | 1.64E+03 | 3.84E+03 | 1.44E+03 | 3.56E+03 | 2.77E+03 | 1.34E+03 | 3.69E+03 | 1.33E+03 | 1.15E+03 |
| Climate change, short term [kg CO2eq.] | 2.09E+03 | 4.29E+03 | 3.27E+03 | 4.46E+03 | 1.83E+03 | 3.90E+03 | 1.60E+03 | 3.65E+03 | 2.94E+03 | 1.50E+03 | 3.76E+03 | 1.43E+03 | 1.23E+03 |
| Fossil and nuclear energy use [MJ dep.] | 2.03E+04 | 6.34E+04 | 5.05E+04 | 6.77E+04 | 1.92E+04 | 5.73E+04 | 1.92E+04 | 6.16E+04 | 7.36E+04 | 1.66E+04 | 5.50E+04 | 3.36E+04 | 2.86E+04 |
| Freshwater acidification [kg SO2eq.] | 3.94E-05 | 3.14E-05 | 4.64E-05 | 3.34E-05 | 3.55E-05 | 2.94E-05 | 3.08E-05 | 2.91E-05 | 2.47E-05 | 3.15E-05 | 2.84E-05 | 1.78E-05 | 1.50E-05 |
| Freshwater ecotoxicity [CTUe] | 4.94E+07 | 3.84E+07 | 8.07E+07 | 4.63E+07 | 5.22E+07 | 3.84E+07 | 5.77E+07 | 6.91E+07 | 1.78E+08 | 5.97E+07 | 3.89E+07 | 1.64E+08 | 1.40E+08 |
| Freshwater eutrophication [kg PO4eq.] | 1.83E-01 | 1.54E-01 | 1.91E-01 | 1.56E-01 | 1.55E-01 | 1.41E-01 | 1.20E-01 | 1.11E-01 | 1.09E-01 | 1.25E-01 | 1.37E-01 | 9.68E-02 | 7.66E-02 |
| Human toxicity cancer [CTUh] | 1.20E-04 | 7.59E-05 | 2.56E-04 | 1.10E-04 | 1.29E-04 | 7.28E-05 | 1.38E-04 | 1.78E-04 | 4.97E-04 | 1.54E-04 | 7.07E-05 | 4.15E-04 | 3.54E-04 |
| Human toxicity non cancer [CTUh] | 3.65E-04 | 3.14E-04 | 6.78E-04 | 3.98E-04 | 3.81E-04 | 3.06E-04 | 4.22E-04 | 5.33E-04 | 1.39E-03 | 4.12E-04 | 3.02E-04 | 1.11E-03 | 9.49E-04 |
| Ionizing radiations [Bq C14eq.] | 1.22E+04 | 3.01E+04 | 1.02E+05 | 4.63E+04 | 1.69E+04 | 2.64E+04 | 2.42E+04 | 7.41E+04 | 2.08E+05 | 1.72E+04 | 2.43E+04 | 8.70E+04 | 7.26E+04 |
| Land occupation, biodiversity [m2eq*yr.] | 2.12E+03 | 3.45E+01 | 2.13E+03 | 3.89E+01 | 1.89E+03 | 3.58E+01 | 1.42E+03 | 5.89E+01 | 1.29E+02 | 1.73E+03 | 3.60E+01 | 1.09E+02 | 9.52E+01 |
| Land transformation, biodiversity [m2eq.] | 4.63E-01 | 8.50E-01 | 7.54E-01 | 8.96E-01 | 4.67E-01 | 7.93E-01 | 4.68E-01 | 9.92E-01 | 1.62E+00 | 5.24E-01 | 7.70E-01 | 1.51E+00 | 1.27E+00 |
| Marine eutrophication [kg Neq.] | 6.60E-01 | 3.50E-01 | 7.38E-01 | 3.87E-01 | 6.03E-01 | 3.35E-01 | 4.97E-01 | 3.29E-01 | 2.30E-01 | 5.45E-01 | 3.28E-01 | 1.79E-01 | 1.51E-01 |
| Mineral resources use [kg dep.] | 5.90E+01 | 5.56E+01 | 6.30E+01 | 5.76E+01 | 5.86E+01 | 5.53E+01 | 5.85E+01 | 5.79E+01 | 6.35E+01 | 5.86E+01 | 5.53E+01 | 6.26E+01 | 6.15E+01 |
| Ozone Layer Depletion [kg CFC-11eq.] | 1.64E-04 | 9.71E-04 | 2.13E-04 | 9.58E-04 | 1.33E-04 | 8.85E-04 | 1.13E-04 | 6.92E-04 | 1.73E-04 | 1.02E-04 | 8.57E-04 | 1.42E-04 | 1.14E-04 |
| Particulate matter formation [kg PM2.5eq.] | 1.26E+00 | 6.71E-01 | 1.50E+00 | 7.41E-01 | 1.11E+00 | 6.14E-01 | 9.47E-01 | 7.01E-01 | 9.36E-01 | 9.55E-01 | 5.85E-01 | 6.79E-01 | 5.80E-01 |
| Photochemical oxidant formation [kg NMVOCeq.] | 1.97E+01 | 1.75E+01 | 2.31E+01 | 1.87E+01 | 1.83E+01 | 1.66E+01 | 1.54E+01 | 1.54E+01 | 7.46E+00 | 1.69E+01 | 1.60E+01 | 4.37E+00 | 3.71E+00 |
| Terrestrial acidification [kg SO2eq.] | 4.12E-02 | 2.64E-02 | 4.70E-02 | 2.81E-02 | 3.67E-02 | 2.47E-02 | 3.10E-02 | 2.44E-02 | 2.04E-02 | 3.19E-02 | 2.39E-02 | 1.45E-02 | 1.23E-02 |
| Water scarcity [m3eq.] | 3.26E+03 | 1.88E+02 | 3.99E+03 | 3.42E+02 | 2.83E+03 | 1.72E+02 | 2.26E+03 | 6.78E+02 | 2.40E+03 | 2.32E+03 | 1.50E+02 | 1.53E+03 | 1.28E+03 |
Medians_midpoint_all_results_PkBudg500=Medians_midpoint_all_results[Medians_midpoint_all_results['Scenario']=='PkBudg500']
Typical Mission
Medians_midpoint_all_results_PkBudg500_typical=Medians_midpoint_all_results_PkBudg500[Medians_midpoint_all_results_PkBudg500['Mission']=='Typical']
PkBudg500_typical=Medians_midpoint_all_results_PkBudg500_typical.pivot('Category and unit','Summary','Value').astype(float).style.format('{:.2E}')
PkBudg500_typical
C:\Users\kmadu\AppData\Local\Temp\ipykernel_17960\1610387013.py:2: FutureWarning: In a future version of pandas all arguments of DataFrame.pivot will be keyword-only.
PkBudg500_typical=Medians_midpoint_all_results_PkBudg500_typical.pivot('Category and unit','Summary','Value').astype(float).style.format('{:.2E}')
| Summary | 2030 Conventional (AAF) | 2030 Conventional (Kerosene) | 2030 GT-bat (AAF) | 2030 GT-bat (Kerosene) | 2040 Conventional (AAF) | 2040 Conventional (Kerosene) | 2040 GT-bat (AAF) | 2040 GT-bat (Kerosene) | 2040 PEMFC-bat (H2) | 2050 Conventional (AAF) | 2050 Conventional (Kerosene) | 2050 PEMFC-bat (H2) | 2050 SOFC-bat (H2) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Category and unit | |||||||||||||
| Climate change, long term [kg CO2eq.] | 8.17E+02 | 1.85E+03 | 7.88E+02 | 1.52E+03 | 6.73E+02 | 1.68E+03 | 4.81E+02 | 1.05E+03 | 2.93E+02 | 5.33E+02 | 1.62E+03 | 2.59E+02 | 2.36E+02 |
| Climate change, short term [kg CO2eq.] | 9.19E+02 | 1.89E+03 | 8.77E+02 | 1.56E+03 | 7.66E+02 | 1.72E+03 | 5.44E+02 | 1.09E+03 | 3.24E+02 | 6.20E+02 | 1.66E+03 | 2.93E+02 | 2.68E+02 |
| Fossil and nuclear energy use [MJ dep.] | 9.18E+03 | 2.82E+04 | 1.37E+04 | 2.56E+04 | 8.17E+03 | 2.56E+04 | 7.81E+03 | 1.76E+04 | 1.16E+04 | 6.70E+03 | 2.45E+04 | 7.16E+03 | 6.36E+03 |
| Freshwater acidification [kg SO2eq.] | 1.84E-05 | 1.50E-05 | 1.54E-05 | 1.20E-05 | 1.67E-05 | 1.42E-05 | 1.19E-05 | 1.04E-05 | 9.64E-06 | 1.51E-05 | 1.38E-05 | 8.28E-06 | 7.33E-06 |
| Freshwater ecotoxicity [CTUe] | 4.06E+07 | 3.60E+07 | 5.06E+07 | 4.27E+07 | 4.30E+07 | 3.72E+07 | 4.98E+07 | 4.65E+07 | 7.66E+07 | 4.67E+07 | 3.80E+07 | 7.75E+07 | 6.92E+07 |
| Freshwater eutrophication [kg PO4eq.] | 8.04E-02 | 6.78E-02 | 6.95E-02 | 5.79E-02 | 6.84E-02 | 6.18E-02 | 4.35E-02 | 3.95E-02 | 3.39E-02 | 5.50E-02 | 5.98E-02 | 3.23E-02 | 2.66E-02 |
| Human toxicity cancer [CTUh] | 7.27E-05 | 5.47E-05 | 1.03E-04 | 7.57E-05 | 7.80E-05 | 5.62E-05 | 9.18E-05 | 7.93E-05 | 1.55E-04 | 9.15E-05 | 5.64E-05 | 1.55E-04 | 1.36E-04 |
| Human toxicity non cancer [CTUh] | 2.88E-04 | 2.68E-04 | 3.62E-04 | 3.18E-04 | 2.97E-04 | 2.70E-04 | 3.40E-04 | 3.25E-04 | 5.37E-04 | 3.16E-04 | 2.71E-04 | 5.27E-04 | 4.66E-04 |
| Ionizing radiations [Bq C14eq.] | 7.03E+03 | 1.49E+04 | 3.46E+04 | 2.70E+04 | 8.16E+03 | 1.32E+04 | 1.48E+04 | 1.74E+04 | 4.39E+04 | 7.48E+03 | 1.17E+04 | 1.99E+04 | 1.70E+04 |
| Land occupation, biodiversity [m2eq*yr.] | 9.38E+02 | 3.27E+01 | 7.60E+02 | 3.94E+01 | 8.41E+02 | 3.59E+01 | 4.98E+02 | 4.36E+01 | 7.72E+01 | 7.80E+02 | 3.91E+01 | 6.99E+01 | 6.30E+01 |
| Land transformation, biodiversity [m2eq.] | 2.89E-01 | 4.57E-01 | 4.03E-01 | 4.66E-01 | 2.95E-01 | 4.39E-01 | 3.35E-01 | 4.13E-01 | 6.13E-01 | 3.09E-01 | 4.18E-01 | 5.64E-01 | 4.93E-01 |
| Marine eutrophication [kg Neq.] | 2.87E-01 | 1.53E-01 | 2.31E-01 | 1.16E-01 | 2.64E-01 | 1.49E-01 | 1.58E-01 | 9.27E-02 | 8.44E-02 | 2.40E-01 | 1.48E-01 | 8.21E-02 | 7.53E-02 |
| Mineral resources use [kg dep.] | 5.53E+01 | 5.38E+01 | 5.67E+01 | 5.51E+01 | 5.52E+01 | 5.38E+01 | 5.56E+01 | 5.48E+01 | 5.62E+01 | 5.52E+01 | 5.38E+01 | 5.59E+01 | 5.59E+01 |
| Ozone Layer Depletion [kg CFC-11eq.] | 7.70E-05 | 4.27E-04 | 7.57E-05 | 3.42E-04 | 6.24E-05 | 3.88E-04 | 4.88E-05 | 2.31E-04 | 4.41E-05 | 4.71E-05 | 3.74E-04 | 6.50E-05 | 5.20E-05 |
| Particulate matter formation [kg PM2.5eq.] | 5.96E-01 | 3.50E-01 | 5.58E-01 | 3.35E-01 | 5.38E-01 | 3.32E-01 | 4.15E-01 | 2.98E-01 | 3.54E-01 | 4.83E-01 | 3.26E-01 | 3.15E-01 | 2.81E-01 |
| Photochemical oxidant formation [kg NMVOCeq.] | 8.34E+00 | 7.44E+00 | 6.03E+00 | 5.00E+00 | 7.69E+00 | 7.00E+00 | 3.99E+00 | 3.61E+00 | 1.88E+00 | 7.12E+00 | 6.80E+00 | 1.61E+00 | 1.42E+00 |
| Terrestrial acidification [kg SO2eq.] | 1.88E-02 | 1.25E-02 | 1.56E-02 | 9.93E-03 | 1.69E-02 | 1.18E-02 | 1.15E-02 | 8.52E-03 | 7.90E-03 | 1.49E-02 | 1.15E-02 | 6.78E-03 | 6.00E-03 |
| Water scarcity [m3eq.] | 1.47E+03 | 1.49E+02 | 1.39E+03 | 2.53E+02 | 1.28E+03 | 1.44E+02 | 8.75E+02 | 2.39E+02 | 6.57E+02 | 1.07E+03 | 1.41E+02 | 5.61E+02 | 4.83E+02 |
Design Mission
Medians_midpoint_all_results_PkBudg500_design=Medians_midpoint_all_results_PkBudg500[Medians_midpoint_all_results_PkBudg500['Mission']=='Design']
Medians_midpoint_all_results_PkBudg500_design=Medians_midpoint_all_results_PkBudg500[Medians_midpoint_all_results_PkBudg500['Mission']=='Design']
PkBudg500_design=Medians_midpoint_all_results_PkBudg500_design.pivot('Category and unit','Summary','Value').astype(float).style.format('{:.2E}')
PkBudg500_design
C:\Users\kmadu\AppData\Local\Temp\ipykernel_17960\2003282372.py:3: FutureWarning: In a future version of pandas all arguments of DataFrame.pivot will be keyword-only.
PkBudg500_design=Medians_midpoint_all_results_PkBudg500_design.pivot('Category and unit','Summary','Value').astype(float).style.format('{:.2E}')
| Summary | 2030 Conventional (AAF) | 2030 Conventional (Kerosene) | 2030 GT-bat (AAF) | 2030 GT-bat (Kerosene) | 2040 Conventional (AAF) | 2040 Conventional (Kerosene) | 2040 GT-bat (AAF) | 2040 GT-bat (Kerosene) | 2040 PEMFC-bat (H2) | 2050 Conventional (AAF) | 2050 Conventional (Kerosene) | 2050 PEMFC-bat (H2) | 2050 SOFC-bat (H2) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Category and unit | |||||||||||||
| Climate change, long term [kg CO2eq.] | 1.67E+03 | 4.09E+03 | 1.91E+03 | 4.07E+03 | 1.35E+03 | 3.71E+03 | 1.10E+03 | 2.91E+03 | 6.16E+02 | 1.08E+03 | 3.59E+03 | 5.25E+02 | 4.56E+02 |
| Climate change, short term [kg CO2eq.] | 1.88E+03 | 4.15E+03 | 2.13E+03 | 4.13E+03 | 1.53E+03 | 3.77E+03 | 1.25E+03 | 2.97E+03 | 6.60E+02 | 1.24E+03 | 3.66E+03 | 5.70E+02 | 5.01E+02 |
| Fossil and nuclear energy use [MJ dep.] | 1.80E+04 | 6.16E+04 | 3.38E+04 | 6.32E+04 | 1.56E+04 | 5.57E+04 | 1.42E+04 | 5.08E+04 | 3.60E+04 | 1.27E+04 | 5.41E+04 | 1.87E+04 | 1.62E+04 |
| Freshwater acidification [kg SO2eq.] | 3.87E-05 | 3.08E-05 | 4.31E-05 | 3.24E-05 | 3.51E-05 | 2.91E-05 | 3.02E-05 | 2.79E-05 | 2.05E-05 | 3.13E-05 | 2.83E-05 | 1.78E-05 | 1.49E-05 |
| Freshwater ecotoxicity [CTUe] | 4.82E+07 | 3.75E+07 | 7.69E+07 | 4.53E+07 | 5.15E+07 | 3.80E+07 | 5.74E+07 | 6.83E+07 | 1.73E+08 | 5.93E+07 | 3.89E+07 | 1.67E+08 | 1.43E+08 |
| Freshwater eutrophication [kg PO4eq.] | 1.84E-01 | 1.54E-01 | 1.91E-01 | 1.57E-01 | 1.57E-01 | 1.41E-01 | 1.21E-01 | 1.12E-01 | 1.11E-01 | 1.26E-01 | 1.37E-01 | 9.99E-02 | 7.99E-02 |
| Human toxicity cancer [CTUh] | 1.12E-04 | 7.03E-05 | 2.00E-04 | 9.61E-05 | 1.20E-04 | 6.92E-05 | 1.28E-04 | 1.59E-04 | 4.31E-04 | 1.51E-04 | 6.93E-05 | 4.27E-04 | 3.59E-04 |
| Human toxicity non cancer [CTUh] | 3.45E-04 | 2.99E-04 | 5.45E-04 | 3.63E-04 | 3.59E-04 | 2.96E-04 | 3.95E-04 | 4.75E-04 | 1.17E-03 | 4.00E-04 | 2.97E-04 | 1.10E-03 | 9.48E-04 |
| Ionizing radiations [Bq C14eq.] | 1.16E+04 | 2.96E+04 | 9.14E+04 | 4.37E+04 | 1.45E+04 | 2.60E+04 | 2.04E+04 | 6.18E+04 | 1.61E+05 | 1.45E+04 | 2.43E+04 | 6.74E+04 | 5.81E+04 |
| Land occupation, biodiversity [m2eq*yr.] | 2.14E+03 | 3.89E+01 | 2.14E+03 | 4.67E+01 | 1.92E+03 | 4.30E+01 | 1.44E+03 | 8.46E+01 | 2.05E+02 | 1.78E+03 | 4.91E+01 | 1.68E+02 | 1.46E+02 |
| Land transformation, biodiversity [m2eq.] | 4.71E-01 | 8.58E-01 | 8.61E-01 | 9.20E-01 | 4.67E-01 | 7.94E-01 | 4.86E-01 | 1.06E+00 | 1.83E+00 | 5.13E-01 | 7.69E-01 | 1.63E+00 | 1.40E+00 |
| Marine eutrophication [kg Neq.] | 6.55E-01 | 3.45E-01 | 7.24E-01 | 3.82E-01 | 6.01E-01 | 3.34E-01 | 4.95E-01 | 3.25E-01 | 2.11E-01 | 5.44E-01 | 3.27E-01 | 1.87E-01 | 1.60E-01 |
| Mineral resources use [kg dep.] | 5.90E+01 | 5.55E+01 | 6.31E+01 | 5.76E+01 | 5.85E+01 | 5.53E+01 | 5.85E+01 | 5.80E+01 | 6.37E+01 | 5.85E+01 | 5.53E+01 | 6.28E+01 | 6.17E+01 |
| Ozone Layer Depletion [kg CFC-11eq.] | 1.59E-04 | 9.67E-04 | 1.85E-04 | 9.48E-04 | 1.27E-04 | 8.82E-04 | 1.06E-04 | 6.77E-04 | 1.08E-04 | 9.46E-05 | 8.56E-04 | 1.13E-04 | 9.05E-05 |
| Particulate matter formation [kg PM2.5eq.] | 1.20E+00 | 6.31E-01 | 1.38E+00 | 6.81E-01 | 1.07E+00 | 5.90E-01 | 9.03E-01 | 6.47E-01 | 8.01E-01 | 9.40E-01 | 5.76E-01 | 6.89E-01 | 5.92E-01 |
| Photochemical oxidant formation [kg NMVOCeq.] | 1.94E+01 | 1.73E+01 | 2.15E+01 | 1.82E+01 | 1.80E+01 | 1.64E+01 | 1.50E+01 | 1.45E+01 | 4.59E+00 | 1.67E+01 | 1.59E+01 | 3.65E+00 | 3.11E+00 |
| Terrestrial acidification [kg SO2eq.] | 4.07E-02 | 2.59E-02 | 4.42E-02 | 2.72E-02 | 3.64E-02 | 2.45E-02 | 3.05E-02 | 2.35E-02 | 1.70E-02 | 3.17E-02 | 2.38E-02 | 1.46E-02 | 1.23E-02 |
| Water scarcity [m3eq.] | 3.24E+03 | 1.78E+02 | 3.72E+03 | 2.92E+02 | 2.80E+03 | 1.62E+02 | 2.21E+03 | 5.89E+02 | 2.06E+03 | 2.33E+03 | 1.58E+02 | 1.64E+03 | 1.40E+03 |
(only for the endpoint baseline scenario and typical mission, no alternative aviation fuels are considered)
endpoints_NDC=endpoints_ST[endpoints_ST['Scenario']=='NDC']
endpoints_NDC_typical=endpoints_NDC[endpoints_NDC['Mission']=='Typical']
endpoints_NDC_typical_kero_h2=endpoints_NDC_typical[(endpoints_NDC_typical["Fuel"] != "AAF") & (endpoints_NDC_typical["Fuel"] != "ILUC")]
g=sns.catplot(endpoints_NDC_typical_kero_h2,x='Configuration',y='Value',row='Damage',col='Year',hue='Scenario',sharey='row',margin_titles=True, sharex=False,kind='box', units='Unit', height=3.5, aspect=1.1,legend=None)
g.set_axis_labels('', '')
g.axes[0,0].set_ylabel("Ecosystem Quality [PDF*m2*year/FU]")
g.axes[0,0].set_title("2030")
g.axes[0,1].set_title("2040")
g.axes[0,2].set_title("2050")
g.axes[1,0].set_ylabel("Human Health [DALY/FU]")
g.axes[1,0].set_xlabel('')
g.axes[1,1].set_xlabel('')
g.axes[1,2].set_xlabel('')
#some outliers are excluded due to visibility considerations, the same figure with all outliers is presented in the supporting word file. To obtain that figure with all outliers the next two lines need to be outcommented.
g.axes[0,0].set_ylim(0, 1200)
g.axes[1,0].set_ylim(0, 0.007)
g.axes[1,0].yaxis.set_major_formatter(lambda x, pos: "{:.0E}".format(x))
for i, ax in enumerate(g.axes.flat):
plt.setp(ax.texts, text='')
plt.savefig("F2_boxplot_endpoint_NDC.svg", format='svg')
#plt.savefig("SI_F2_boxplot_endpoint_NDC.svg", format='svg')
(only for the endpoint baseline scenario and typical mission, no alternative aviation fuels are considered)
#Selecting only short-term damages (see method import section for more detail)
cols_HH_ST = ["Climate change, human health, short term",'Water availability, human health','Photochemical oxidant formation','Ionizing radiation, human health','Ozone layer depletion','Human toxicity cancer, short term','Human toxicity non-cancer, short term','Particulate matter formation']
cols_EQ_ST =['Climate change, ecosystem quality, short term','Marine acidification, short term','Land occupation, biodiversity','Water availability, freshwater ecosystem','Water availability, terrestrial ecosystem','Thermally polluted water','Freshwater ecotoxicity, short term','Freshwater acidification','Terrestrial acidification','Freshwater eutrophication','Marine eutrophication','Land transformation, biodiversity','Ionizing radiation, ecosystem quality']
deterministic_endpoint_2030_renamed=deterministic_endpoint_typ_2030[0].rename(index={'typ_aircraft_conv_kero_NDC': 'Conventional', 'typ_aircraft_GT_bat_kero_NDC': 'GT-bat'})
deterministic_endpoint_2040_renamed=deterministic_endpoint_typ_2040[0].rename(index={'typ_aircraft_conv_kero_NDC': 'Conventional', 'typ_aircraft_GT_bat_kero_NDC': 'GT-bat','typ_aircraft_PEMFC_bat_NDC': 'PEMFC-bat'})
deterministic_endpoint_2050_renamed=deterministic_endpoint_typ_2050[0].rename(index={'typ_aircraft_conv_kero_NDC': 'Conventional','typ_aircraft_PEMFC_bat_NDC': 'PEMFC-bat','typ_aircraft_SOFC_bat_NDC': 'SOFC-bat'})
endpoint_HH_2030_ST=deterministic_endpoint_2030_renamed[cols_HH_ST]
endpoint_EQ_2030_ST=deterministic_endpoint_2030_renamed[cols_EQ_ST]
endpoint_HH_2040_ST=deterministic_endpoint_2040_renamed[cols_HH_ST]
endpoint_EQ_2040_ST=deterministic_endpoint_2040_renamed[cols_EQ_ST]
endpoint_HH_2050_ST=deterministic_endpoint_2050_renamed[cols_HH_ST]
endpoint_EQ_2050_ST=deterministic_endpoint_2050_renamed[cols_EQ_ST]
configs_2030=['Conventional','GT-bat']
configs_2040=['Conventional','GT-bat','PEMFC-bat']
configs_2050=['Conventional','PEMFC-bat','SOFC-bat']
endpoint_HH_2030_ST_NDC=endpoint_HH_2030_ST.loc[configs_2030]
endpoint_EQ_2030_ST_NDC=endpoint_EQ_2030_ST.loc[configs_2030]
endpoint_HH_2040_ST_NDC=endpoint_HH_2040_ST.loc[configs_2040]
endpoint_EQ_2040_ST_NDC=endpoint_EQ_2040_ST.loc[configs_2040]
endpoint_HH_2050_ST_NDC=endpoint_HH_2050_ST.loc[configs_2050]
endpoint_EQ_2050_ST_NDC=endpoint_EQ_2050_ST.loc[configs_2050]
#setting color palette
palette=sns.color_palette('tab20')[:13]
sns.color_palette(palette)
# create stacked bar chart for ecosystem quality
#define subplot layout
fig, axes = plt.subplots(nrows=1, ncols=3, sharey=True, figsize=(9,5))
#add DataFrames to subplots
endpoint_EQ_2030_ST_NDC.plot(ax=axes[0],kind='bar', stacked=True, color=palette, fontsize=10, title='2030', legend=False)
endpoint_EQ_2040_ST_NDC.plot(ax=axes[1],kind='bar', stacked=True, color=palette, fontsize=10, title='2040',legend=False)
endpoint_EQ_2050_ST_NDC.plot(ax=axes[2],kind='bar', stacked=True, color=palette, fontsize=10, title='2050',legend=False)
handles, labels = axes[2].get_legend_handles_labels()
axes[0].set_ylabel('Ecosystem Quality [PDF*m2*year/FU]')
fig.legend(handles, labels,bbox_to_anchor=[1.15, 0.9],loc='upper center', frameon=False,fontsize=8)
sns.move_legend(fig, "lower center",bbox_to_anchor=(.5, -0.42), ncol=2,frameon=False)
axes[0].text(-0.05, 1.05, 'A', transform=axes[0].transAxes, size=20, weight='bold')
plt.savefig("F3A_contribution_damages_deterministic_EQ.svg", format='svg',bbox_inches='tight')
#setting color palette
alette=sns.color_palette('tab20')[:8]
sns.color_palette(palette)
# create stacked bar chart for human health
#define subplot layout
fig, axes = plt.subplots(nrows=1, ncols=3, sharey=True,figsize=(8,5))
#add DataFrames to subplots
endpoint_HH_2030_ST_NDC.plot(ax=axes[0],kind='bar', stacked=True, color=palette, fontsize=10, title='2030', legend=False)
endpoint_HH_2040_ST_NDC.plot(ax=axes[1],kind='bar', stacked=True, color=palette, fontsize=10, title='2040',legend=False)
endpoint_HH_2050_ST_NDC.plot(ax=axes[2],kind='bar', stacked=True, color=palette, fontsize=10, title='2050',legend=False)
handles, labels = axes[2].get_legend_handles_labels()
axes[0].set_ylabel('Human Health [DALY/FU]')
fig.legend(handles, labels,bbox_to_anchor=[1.13, 0.9],loc='upper center',frameon=False)
sns.move_legend(fig, "lower center",bbox_to_anchor=(.5, -0.30), ncol=2,frameon=False)
axes[0].text(-0.05, 1.05, 'B', transform=axes[0].transAxes, size=20, weight='bold')
axes[0].yaxis.set_major_formatter(lambda x, pos: "{:.0E}".format(x))
plt.savefig("F3B_contribution_damages_deterministic_HH.svg", format='svg',bbox_inches='tight')
based on deterministic results, obtained in
#setting color palette
palette=sns.color_palette('tab20')[:6]
sns.color_palette(palette)
#merging all life cycle stages dataframes for human health damages into one
contributions_HH=pd.concat([endpoint_stages_contribution_HH_2030,endpoint_stages_contribution_HH_2040,endpoint_stages_contribution_HH_2050])
contributions_HH=contributions_HH[['Mission','Configuration','Fuel','Airport use','Aircraft production','SAF production', 'Combustion','Kerosene production','Electricity production','H2','Year']]
contributions_HH=contributions_HH.rename({'H2':'Hydrogen production'}, axis='columns')
#summing all impacts to obtain the human health damage
contributions_HH['Sum']=contributions_HH.sum(axis = 1, numeric_only=True)
#2030
contributions_HH_2030_kerosene_typ=contributions_HH[((contributions_HH['Configuration']=='Conventional')|(contributions_HH['Configuration']=='GT-bat'))&(contributions_HH['Fuel']=='Kerosene') & (contributions_HH['Mission'] =='typical mission')&(contributions_HH['Year'] =='2030')]
contributions_HH_2030_kerosene_typ=contributions_HH_2030_kerosene_typ.drop(columns=['SAF production'])
contributions_HH_2030_kerosene_typ=contributions_HH_2030_kerosene_typ.reindex([6,4])
#2040
contributions_HH_2040_kerosene_typ=contributions_HH[((contributions_HH['Configuration']=='Conventional')|(contributions_HH['Configuration']=='GT-bat')|(contributions_HH['Configuration']=='PEMFC-bat'))&(contributions_HH['Fuel']=='Kerosene') & (contributions_HH['Mission'] =='typical mission')&(contributions_HH['Year'] =='2040')]
contributions_HH_2040_kerosene_typ=contributions_HH_2040_kerosene_typ.drop(columns=['SAF production'])
contributions_HH_2040_kerosene_typ=contributions_HH_2040_kerosene_typ.reindex([8,5,7])
#2050
contributions_HH_2050_kerosene_typ=contributions_HH[((contributions_HH['Configuration']=='Conventional')|(contributions_HH['Configuration']=='SOFC-bat')|(contributions_HH['Configuration']=='PEMFC-bat'))&(contributions_HH['Fuel']=='Kerosene') & (contributions_HH['Mission'] =='typical mission')&(contributions_HH['Year'] =='2050')]
contributions_HH_2050_kerosene_typ=contributions_HH_2050_kerosene_typ.drop(columns=['SAF production'])
contributions_HH_2050_kerosene_typ=contributions_HH_2050_kerosene_typ.reindex([6,4,5])
# obtaining the contributions of each stage in percent
percentages_HH=contributions_HH
percentages_HH['Combustion %']=percentages_HH['Combustion']*100/percentages_HH['Sum']
percentages_HH['SAF production %']=percentages_HH['SAF production']*100/percentages_HH['Sum']
percentages_HH['Airport use %']=percentages_HH['Airport use']*100/percentages_HH['Sum']
percentages_HH['Kerosene production %']=percentages_HH['Kerosene production']*100/percentages_HH['Sum']
percentages_HH['Electricity production %']=percentages_HH['Electricity production']*100/percentages_HH['Sum']
percentages_HH['Aircraft production %']=percentages_HH['Aircraft production']*100/percentages_HH['Sum']
percentages_HH['Hydrogen production %']=percentages_HH['Hydrogen production']*100/percentages_HH['Sum']
percentages_HH=percentages_HH.drop(columns=['Combustion','SAF production','Airport use','Kerosene production','Electricity production','Aircraft production','Hydrogen production','Sum'])
#2030
percentages_HH_2030_kerosene_typ=percentages_HH[((percentages_HH['Configuration']=='Conventional')|(percentages_HH['Configuration']=='GT-bat'))&(percentages_HH['Fuel']=='Kerosene') & (percentages_HH['Mission'] =='typical mission')&(percentages_HH['Year'] =='2030')]
percentages_HH_2030_kerosene_typ=percentages_HH_2030_kerosene_typ.reindex([6,4])
#2040
percentages_HH_2040_kerosene_typ=percentages_HH[((percentages_HH['Configuration']=='Conventional')|(percentages_HH['Configuration']=='GT-bat')|(percentages_HH['Configuration']=='PEMFC-bat'))&(percentages_HH['Fuel']=='Kerosene') & (percentages_HH['Mission'] =='typical mission')&(percentages_HH['Year'] =='2040')]
percentages_HH_2040_kerosene_typ=percentages_HH_2040_kerosene_typ.reindex([8,5,7])
#2050
percentages_HH_2050_kerosene_typ=percentages_HH[((percentages_HH['Configuration']=='Conventional')|(percentages_HH['Configuration']=='SOFC-bat')|(percentages_HH['Configuration']=='PEMFC-bat'))&(percentages_HH['Fuel']=='Kerosene') & (percentages_HH['Mission'] =='typical mission')&(percentages_HH['Year'] =='2050')]
percentages_HH_2050_kerosene_typ=percentages_HH_2050_kerosene_typ.reindex([6,4,5])
#creating barplot with stacked absolute values
fig, axes = plt.subplots(1, 3, sharex='col', sharey='row',figsize=(13, 7))
contributions_HH_2030_kerosene_typ.drop(columns=['Sum']).plot(kind='bar', x='Configuration', stacked=True, ax=axes[0], legend=False, title='2030', color=palette)
contributions_HH_2040_kerosene_typ.drop(columns=['Sum']).plot(kind='bar', x='Configuration', stacked=True, ax=axes[1], legend=False, title='2040', color=palette)
contributions_HH_2050_kerosene_typ.drop(columns=['Sum']).plot(kind='bar', x='Configuration', stacked=True, ax=axes[2], legend=False, title='2050', color=palette)
axes[0].set_ylabel(r'Human Health [DALY/FU]')
plt.legend(loc='center left', bbox_to_anchor=(0.255, 0.85))
axes[0].text(-0.05, 1.05, 'B', transform=axes[0].transAxes, size=20, weight='bold')
#adding the corresponding percentages onto the graph manually
# Airport Use 2030
for xpos, ypos, yval in zip([0,1],((contributions_HH_2030_kerosene_typ['Airport use'])/2).values, percentages_HH_2030_kerosene_typ['Airport use %'].values):
axes[0].text(xpos, ypos, f"{yval:0.1f}%", ha="center", va="center",fontsize='11')
# Airport Use 2040
for xpos, ypos, yval in zip([0,1,2],((contributions_HH_2040_kerosene_typ['Airport use'])/2).values, percentages_HH_2040_kerosene_typ['Airport use %'].values):
axes[1].text(xpos, ypos, f"{yval:0.1f}%", ha="center", va="center",fontsize='11')
# Airport Use 2050
for xpos, ypos, yval in zip([0,1,2],((contributions_HH_2050_kerosene_typ['Airport use'])/2).values, percentages_HH_2050_kerosene_typ['Airport use %'].values):
axes[2].text(xpos, ypos, f"{yval:0.1f}%", ha="center", va="center",fontsize='11')
#Aircraft production 2030
for xpos, ypos, yval in zip([0,1],(contributions_HH_2030_kerosene_typ['Airport use']+(contributions_HH_2030_kerosene_typ['Aircraft production']/2)).values, percentages_HH_2030_kerosene_typ['Aircraft production %'].values):
axes[0].text(xpos, ypos, f"{yval:0.1f}%", ha="center", va="center",fontsize='11')
#Aircraft production 2040
for xpos, ypos, yval in zip([0,1,2],(contributions_HH_2040_kerosene_typ['Airport use']+(contributions_HH_2040_kerosene_typ['Aircraft production']/2)).values, percentages_HH_2040_kerosene_typ['Aircraft production %'].values):
axes[1].text(xpos, ypos, f"{yval:0.1f}%", ha="center", va="center",fontsize='11')
#Aircraft production 2050
for xpos, ypos, yval in zip([0,1,2],(contributions_HH_2050_kerosene_typ['Airport use']+(contributions_HH_2050_kerosene_typ['Aircraft production']/2)).values, percentages_HH_2050_kerosene_typ['Aircraft production %'].values):
axes[2].text(xpos, ypos, f"{yval:0.1f}%", ha="center", va="center",fontsize='11')
#Combustion 2030
for xpos, ypos, yval in zip([0,1],(contributions_HH_2030_kerosene_typ['Airport use']+contributions_HH_2030_kerosene_typ['Aircraft production']+(contributions_HH_2030_kerosene_typ['Combustion']/2)).values, percentages_HH_2030_kerosene_typ['Combustion %'].values):
axes[0].text(xpos, ypos, f"{yval:0.1f}%", ha="center", va="center",fontsize='11')
#Combustion 2040
for xpos, ypos, yval in zip([0,1],(contributions_HH_2040_kerosene_typ['Airport use']+contributions_HH_2040_kerosene_typ['Aircraft production']+(contributions_HH_2040_kerosene_typ['Combustion']/2)).values, percentages_HH_2040_kerosene_typ['Combustion %'].values):
axes[1].text(xpos, ypos, f"{yval:0.1f}%", ha="center", va="center",fontsize='11')
#Combustion 2050
for xpos, ypos, yval in zip([0],(contributions_HH_2050_kerosene_typ['Airport use']+contributions_HH_2050_kerosene_typ['Aircraft production']+(contributions_HH_2050_kerosene_typ['Combustion']/2)).values, percentages_HH_2050_kerosene_typ['Combustion %'].values):
axes[2].text(xpos, ypos, f"{yval:0.1f}%", ha="center", va="center",fontsize='11')
#Kerosene production 2030
for xpos, ypos, yval in zip([0,1],(contributions_HH_2030_kerosene_typ['Airport use']+contributions_HH_2030_kerosene_typ['Aircraft production']+contributions_HH_2030_kerosene_typ['Combustion']+(contributions_HH_2030_kerosene_typ['Kerosene production']/2)).values, percentages_HH_2030_kerosene_typ['Kerosene production %'].values):
axes[0].text(xpos, ypos, f"{yval:0.1f}%", ha="center", va="center",fontsize='11')
#Kerosene production 2040
for xpos, ypos, yval in zip([0,1],(contributions_HH_2040_kerosene_typ['Airport use']+contributions_HH_2040_kerosene_typ['Aircraft production']+contributions_HH_2040_kerosene_typ['Combustion']+(contributions_HH_2040_kerosene_typ['Kerosene production']/2)).values, percentages_HH_2040_kerosene_typ['Kerosene production %'].values):
axes[1].text(xpos, ypos, f"{yval:0.1f}%", ha="center", va="center",fontsize='11')
#Kerosene production 2050
for xpos, ypos, yval in zip([0],(contributions_HH_2050_kerosene_typ['Airport use']+contributions_HH_2050_kerosene_typ['Aircraft production']+contributions_HH_2050_kerosene_typ['Combustion']+(contributions_HH_2050_kerosene_typ['Kerosene production']/2)).values, percentages_HH_2050_kerosene_typ['Kerosene production %'].values):
axes[2].text(xpos, ypos, f"{yval:0.1f}%", ha="center", va="center",fontsize='11')
#Electricity production 2030
axes[0].text(1, (contributions_HH_2030_kerosene_typ['Airport use']+contributions_HH_2030_kerosene_typ['Aircraft production']+contributions_HH_2030_kerosene_typ['Combustion']+contributions_HH_2030_kerosene_typ['Kerosene production']+(contributions_HH_2030_kerosene_typ['Electricity production']/2)).values[1], f"{percentages_HH_2030_kerosene_typ['Electricity production %'].values[1]:0.1f}%", ha="center", va="center",fontsize='11')
#Electricity production 2040
axes[1].text(1, (contributions_HH_2040_kerosene_typ['Airport use']+contributions_HH_2040_kerosene_typ['Aircraft production']+contributions_HH_2040_kerosene_typ['Combustion']+contributions_HH_2040_kerosene_typ['Kerosene production']+(contributions_HH_2040_kerosene_typ['Electricity production']/2)).values[1], f"{percentages_HH_2040_kerosene_typ['Electricity production %'].values[1]:0.1f}%", ha="center", va="center",fontsize='11')
axes[1].text(2, (contributions_HH_2040_kerosene_typ['Airport use']+contributions_HH_2040_kerosene_typ['Aircraft production']+contributions_HH_2040_kerosene_typ['Combustion']+contributions_HH_2040_kerosene_typ['Kerosene production']+(contributions_HH_2040_kerosene_typ['Electricity production']/2)).values[2], f"{percentages_HH_2040_kerosene_typ['Electricity production %'].values[2]:0.1f}%", ha="center", va="center",fontsize='11')
#Electricity production 2050
axes[2].text(1, (contributions_HH_2050_kerosene_typ['Airport use']+contributions_HH_2050_kerosene_typ['Aircraft production']+contributions_HH_2050_kerosene_typ['Combustion']+contributions_HH_2050_kerosene_typ['Kerosene production']+(contributions_HH_2050_kerosene_typ['Electricity production']/2)).values[1], f"{percentages_HH_2050_kerosene_typ['Electricity production %'].values[1]:0.1f}%", ha="center", va="center",fontsize='11')
axes[2].text(2, (contributions_HH_2050_kerosene_typ['Airport use']+contributions_HH_2050_kerosene_typ['Aircraft production']+contributions_HH_2050_kerosene_typ['Combustion']+contributions_HH_2050_kerosene_typ['Kerosene production']+(contributions_HH_2050_kerosene_typ['Electricity production']/2)).values[2], f"{percentages_HH_2050_kerosene_typ['Electricity production %'].values[2]:0.1f}%", ha="center", va="center",fontsize='11')
#Hydrogen production production 2040
axes[1].text(2,(contributions_HH_2040_kerosene_typ['Airport use']+contributions_HH_2040_kerosene_typ['Aircraft production']+contributions_HH_2040_kerosene_typ['Combustion']+contributions_HH_2040_kerosene_typ['Kerosene production']+contributions_HH_2040_kerosene_typ['Electricity production']+(contributions_HH_2040_kerosene_typ['Hydrogen production']/2)).values[2], f"{percentages_HH_2040_kerosene_typ['Hydrogen production %'].values[2]:0.1f}%", ha="center", va="center",fontsize='11')
#Hydrogen production production 2050
axes[2].text(1,(contributions_HH_2050_kerosene_typ['Airport use']+contributions_HH_2050_kerosene_typ['Aircraft production']+contributions_HH_2050_kerosene_typ['Combustion']+contributions_HH_2050_kerosene_typ['Kerosene production']+contributions_HH_2050_kerosene_typ['Electricity production']+(contributions_HH_2050_kerosene_typ['Hydrogen production']/2)).values[1], f"{percentages_HH_2050_kerosene_typ['Hydrogen production %'].values[1]:0.1f}%", ha="center", va="center",fontsize='11')
#Hydrogen production production 2040
axes[2].text(2,(contributions_HH_2050_kerosene_typ['Airport use']+contributions_HH_2050_kerosene_typ['Aircraft production']+contributions_HH_2050_kerosene_typ['Combustion']+contributions_HH_2050_kerosene_typ['Kerosene production']+contributions_HH_2050_kerosene_typ['Electricity production']+(contributions_HH_2050_kerosene_typ['Hydrogen production']/2)).values[2], f"{percentages_HH_2050_kerosene_typ['Hydrogen production %'].values[2]:0.1f}%", ha="center", va="center",fontsize='11')
axes[0].yaxis.set_major_formatter(lambda x, pos: "{:.0E}".format(x))
plt.legend(bbox_to_anchor=(0.45, -0.25), ncol=3,frameon=False)
plt.savefig("F4B_contribution_stages_deterministic_NDC_HH.svg", format='svg',bbox_inches='tight')
#merging all life cycle stages dataframes for ecosystem quality damages into one
contributions_EQ=pd.concat([endpoint_stages_contribution_EQ_2030,endpoint_stages_contribution_EQ_2040,endpoint_stages_contribution_EQ_2050])
contributions_EQ=contributions_EQ[['Mission','Configuration','Fuel','Airport use','Aircraft production','SAF production', 'Combustion','Kerosene production','Electricity production','H2','Year']]
contributions_EQ=contributions_EQ.rename({'H2':'Hydrogen production'}, axis='columns')
#summing all damages to obtain the ecosystem quality value
contributions_EQ['Sum']=contributions_EQ.sum(axis = 1, numeric_only=True)
#2030
contributions_EQ_2030_kerosene_typ=contributions_EQ[((contributions_EQ['Configuration']=='Conventional')|(contributions_EQ['Configuration']=='GT-bat'))&(contributions_EQ['Fuel']=='Kerosene') & (contributions_EQ['Mission'] =='typical mission')&(contributions_EQ['Year'] =='2030')]
contributions_EQ_2030_kerosene_typ=contributions_EQ_2030_kerosene_typ.drop(columns=['SAF production'])
contributions_EQ_2030_kerosene_typ=contributions_EQ_2030_kerosene_typ.reindex([6,4])
#2040
contributions_EQ_2040_kerosene_typ=contributions_EQ[((contributions_EQ['Configuration']=='Conventional')|(contributions_EQ['Configuration']=='GT-bat')|(contributions_EQ['Configuration']=='PEMFC-bat'))&(contributions_EQ['Fuel']=='Kerosene') & (contributions_EQ['Mission'] =='typical mission')&(contributions_EQ['Year'] =='2040')]
contributions_EQ_2040_kerosene_typ=contributions_EQ_2040_kerosene_typ.drop(columns=['SAF production'])
contributions_EQ_2040_kerosene_typ=contributions_EQ_2040_kerosene_typ.reindex([8,5,7])
#2050
contributions_EQ_2050_kerosene_typ=contributions_EQ[((contributions_EQ['Configuration']=='Conventional')|(contributions_EQ['Configuration']=='SOFC-bat')|(contributions_EQ['Configuration']=='PEMFC-bat'))&(contributions_EQ['Fuel']=='Kerosene') & (contributions_EQ['Mission'] =='typical mission')&(contributions_EQ['Year'] =='2050')]
contributions_EQ_2050_kerosene_typ=contributions_EQ_2050_kerosene_typ.drop(columns=['SAF production'])
contributions_EQ_2050_kerosene_typ=contributions_EQ_2050_kerosene_typ.reindex([6,4,5])
# obtaining the contributions of each stage in percent
percentages_EQ=contributions_EQ
percentages_EQ['Combustion %']=percentages_EQ['Combustion']*100/percentages_EQ['Sum']
percentages_EQ['SAF production %']=percentages_EQ['SAF production']*100/percentages_EQ['Sum']
percentages_EQ['Airport use %']=percentages_EQ['Airport use']*100/percentages_EQ['Sum']
percentages_EQ['Kerosene production %']=percentages_EQ['Kerosene production']*100/percentages_EQ['Sum']
percentages_EQ['Electricity production %']=percentages_EQ['Electricity production']*100/percentages_EQ['Sum']
percentages_EQ['Aircraft production %']=percentages_EQ['Aircraft production']*100/percentages_EQ['Sum']
percentages_EQ['Hydrogen production %']=percentages_EQ['Hydrogen production']*100/percentages_EQ['Sum']
percentages_EQ=percentages_EQ.drop(columns=['Combustion','SAF production','Airport use','Kerosene production','Electricity production','Aircraft production','Hydrogen production','Sum'])
#2030
percentages_EQ_2030_kerosene_typ=percentages_EQ[((percentages_EQ['Configuration']=='Conventional')|(percentages_EQ['Configuration']=='GT-bat'))&(percentages_EQ['Fuel']=='Kerosene') & (percentages_EQ['Mission'] =='typical mission')&(percentages_EQ['Year'] =='2030')]
percentages_EQ_2030_kerosene_typ=percentages_EQ_2030_kerosene_typ.reindex([6,4])
#2040
percentages_EQ_2040_kerosene_typ=percentages_EQ[((percentages_EQ['Configuration']=='Conventional')|(percentages_EQ['Configuration']=='GT-bat')|(percentages_EQ['Configuration']=='PEMFC-bat'))&(percentages_EQ['Fuel']=='Kerosene') & (percentages_EQ['Mission'] =='typical mission')&(percentages_EQ['Year'] =='2040')]
percentages_EQ_2040_kerosene_typ=percentages_EQ_2040_kerosene_typ.reindex([8,5,7])
#2050
percentages_EQ_2050_kerosene_typ=percentages_EQ[((percentages_EQ['Configuration']=='Conventional')|(percentages_EQ['Configuration']=='SOFC-bat')|(percentages_EQ['Configuration']=='PEMFC-bat'))&(percentages_EQ['Fuel']=='Kerosene') & (percentages_EQ['Mission'] =='typical mission')&(percentages_EQ['Year'] =='2050')]
percentages_EQ_2050_kerosene_typ=percentages_EQ_2050_kerosene_typ.reindex([6,4,5])
#creating barplot with stacked absolute values
fig, axes = plt.subplots(1, 3, sharex='col', sharey='row',figsize=(13, 7))
contributions_EQ_2030_kerosene_typ.drop(columns=['Sum']).plot(kind='bar', x='Configuration', stacked=True, ax=axes[0], legend=False, title='2030', color=palette)
contributions_EQ_2040_kerosene_typ.drop(columns=['Sum']).plot(kind='bar', x='Configuration', stacked=True, ax=axes[1], legend=False, title='2040', color=palette)
contributions_EQ_2050_kerosene_typ.drop(columns=['Sum']).plot(kind='bar', x='Configuration', stacked=True, ax=axes[2], legend=False, title='2050', color=palette)
axes[0].set_ylabel(r'Ecosystem Quality [PDF*m2*year/FU]')
plt.legend(loc='center left', bbox_to_anchor=(0.255, 0.85))
axes[0].text(-0.05, 1.05, 'A', transform=axes[0].transAxes, size=20, weight='bold')
#adding the corresponding percentages onto the graph manually
# Airport Use 2030
for xpos, ypos, yval in zip([0,1],((contributions_EQ_2030_kerosene_typ['Airport use'])/2).values, percentages_EQ_2030_kerosene_typ['Airport use %'].values):
axes[0].text(xpos, ypos, f"{yval:0.1f}%", ha="center", va="center",fontsize='11')
# Airport Use 2040
for xpos, ypos, yval in zip([0,1,2],((contributions_EQ_2040_kerosene_typ['Airport use'])/2).values, percentages_EQ_2040_kerosene_typ['Airport use %'].values):
axes[1].text(xpos, ypos, f"{yval:0.1f}%", ha="center", va="center",fontsize='11')
# Airport Use 2050
for xpos, ypos, yval in zip([0,1,2],((contributions_EQ_2050_kerosene_typ['Airport use'])/2).values, percentages_EQ_2050_kerosene_typ['Airport use %'].values):
axes[2].text(xpos, ypos, f"{yval:0.1f}%", ha="center", va="center",fontsize='11')
#Aircraft production 2030
for xpos, ypos, yval in zip([0,1],(contributions_EQ_2030_kerosene_typ['Airport use']+(contributions_EQ_2030_kerosene_typ['Aircraft production']/2)).values, percentages_EQ_2030_kerosene_typ['Aircraft production %'].values):
axes[0].text(xpos, ypos, f"{yval:0.1f}%", ha="center", va="center",fontsize='11')
#Aircraft production 2040
for xpos, ypos, yval in zip([0,1,2],(contributions_EQ_2040_kerosene_typ['Airport use']+(contributions_EQ_2040_kerosene_typ['Aircraft production']/2)).values, percentages_EQ_2040_kerosene_typ['Aircraft production %'].values):
axes[1].text(xpos, ypos, f"{yval:0.1f}%", ha="center", va="center",fontsize='11')
#Aircraft production 2050
for xpos, ypos, yval in zip([0,1,2],(contributions_EQ_2050_kerosene_typ['Airport use']+(contributions_EQ_2050_kerosene_typ['Aircraft production']/2)).values, percentages_EQ_2050_kerosene_typ['Aircraft production %'].values):
axes[2].text(xpos, ypos, f"{yval:0.1f}%", ha="center", va="center",fontsize='11')
#Combustion 2030
for xpos, ypos, yval in zip([0,1],(contributions_EQ_2030_kerosene_typ['Airport use']+contributions_EQ_2030_kerosene_typ['Aircraft production']+(contributions_EQ_2030_kerosene_typ['Combustion']/2)).values, percentages_EQ_2030_kerosene_typ['Combustion %'].values):
axes[0].text(xpos, ypos, f"{yval:0.1f}%", ha="center", va="center",fontsize='11')
#Combustion 2040
for xpos, ypos, yval in zip([0,1],(contributions_EQ_2040_kerosene_typ['Airport use']+contributions_EQ_2040_kerosene_typ['Aircraft production']+(contributions_EQ_2040_kerosene_typ['Combustion']/2)).values, percentages_EQ_2040_kerosene_typ['Combustion %'].values):
axes[1].text(xpos, ypos, f"{yval:0.1f}%", ha="center", va="center",fontsize='11')
#Combustion 2050
for xpos, ypos, yval in zip([0],(contributions_EQ_2050_kerosene_typ['Airport use']+contributions_EQ_2050_kerosene_typ['Aircraft production']+(contributions_EQ_2050_kerosene_typ['Combustion']/2)).values, percentages_EQ_2050_kerosene_typ['Combustion %'].values):
axes[2].text(xpos, ypos, f"{yval:0.1f}%", ha="center", va="center",fontsize='11')
#Kerosene production 2030
for xpos, ypos, yval in zip([0,1],(contributions_EQ_2030_kerosene_typ['Airport use']+contributions_EQ_2030_kerosene_typ['Aircraft production']+contributions_EQ_2030_kerosene_typ['Combustion']+(contributions_EQ_2030_kerosene_typ['Kerosene production']/2)).values, percentages_EQ_2030_kerosene_typ['Kerosene production %'].values):
axes[0].text(xpos, ypos, f"{yval:0.1f}%", ha="center", va="center",fontsize='11')
#Kerosene production 2040
for xpos, ypos, yval in zip([0,1],(contributions_EQ_2040_kerosene_typ['Airport use']+contributions_EQ_2040_kerosene_typ['Aircraft production']+contributions_EQ_2040_kerosene_typ['Combustion']+(contributions_EQ_2040_kerosene_typ['Kerosene production']/2)).values, percentages_EQ_2040_kerosene_typ['Kerosene production %'].values):
axes[1].text(xpos, ypos, f"{yval:0.1f}%", ha="center", va="center",fontsize='11')
#Kerosene production 2050
for xpos, ypos, yval in zip([0],(contributions_EQ_2050_kerosene_typ['Airport use']+contributions_EQ_2050_kerosene_typ['Aircraft production']+contributions_EQ_2050_kerosene_typ['Combustion']+(contributions_EQ_2050_kerosene_typ['Kerosene production']/2)).values, percentages_EQ_2050_kerosene_typ['Kerosene production %'].values):
axes[2].text(xpos, ypos, f"{yval:0.1f}%", ha="center", va="center",fontsize='11')
#Electricity production 2030
axes[0].text(1, (contributions_EQ_2030_kerosene_typ['Airport use']+contributions_EQ_2030_kerosene_typ['Aircraft production']+contributions_EQ_2030_kerosene_typ['Combustion']+contributions_EQ_2030_kerosene_typ['Kerosene production']+(contributions_EQ_2030_kerosene_typ['Electricity production']/2)).values[1], f"{percentages_EQ_2030_kerosene_typ['Electricity production %'].values[1]:0.1f}%", ha="center", va="center",fontsize='11')
#Electricity production 2040
axes[1].text(1, (contributions_EQ_2040_kerosene_typ['Airport use']+contributions_EQ_2040_kerosene_typ['Aircraft production']+contributions_EQ_2040_kerosene_typ['Combustion']+contributions_EQ_2040_kerosene_typ['Kerosene production']+(contributions_EQ_2040_kerosene_typ['Electricity production']/2)).values[1], f"{percentages_EQ_2040_kerosene_typ['Electricity production %'].values[1]:0.1f}%", ha="center", va="center",fontsize='11')
axes[1].text(2, (contributions_EQ_2040_kerosene_typ['Airport use']+contributions_EQ_2040_kerosene_typ['Aircraft production']+contributions_EQ_2040_kerosene_typ['Combustion']+contributions_EQ_2040_kerosene_typ['Kerosene production']+(contributions_EQ_2040_kerosene_typ['Electricity production']/2)).values[2], f"{percentages_EQ_2040_kerosene_typ['Electricity production %'].values[2]:0.1f}%", ha="center", va="center",fontsize='11')
#Electricity production 2050
axes[2].text(1, (contributions_EQ_2050_kerosene_typ['Airport use']+contributions_EQ_2050_kerosene_typ['Aircraft production']+contributions_EQ_2050_kerosene_typ['Combustion']+contributions_EQ_2050_kerosene_typ['Kerosene production']+(contributions_EQ_2050_kerosene_typ['Electricity production']/2)).values[1], f"{percentages_EQ_2050_kerosene_typ['Electricity production %'].values[1]:0.1f}%", ha="center", va="center",fontsize='11')
axes[2].text(2, (contributions_EQ_2050_kerosene_typ['Airport use']+contributions_EQ_2050_kerosene_typ['Aircraft production']+contributions_EQ_2050_kerosene_typ['Combustion']+contributions_EQ_2050_kerosene_typ['Kerosene production']+(contributions_EQ_2050_kerosene_typ['Electricity production']/2)).values[2], f"{percentages_EQ_2050_kerosene_typ['Electricity production %'].values[2]:0.1f}%", ha="center", va="center",fontsize='11')
#Hydrogen production production 2040
axes[1].text(2,(contributions_EQ_2040_kerosene_typ['Airport use']+contributions_EQ_2040_kerosene_typ['Aircraft production']+contributions_EQ_2040_kerosene_typ['Combustion']+contributions_EQ_2040_kerosene_typ['Kerosene production']+contributions_EQ_2040_kerosene_typ['Electricity production']+(contributions_EQ_2040_kerosene_typ['Hydrogen production']/2)).values[2], f"{percentages_EQ_2040_kerosene_typ['Hydrogen production %'].values[2]:0.1f}%", ha="center", va="center",fontsize='11')
#Hydrogen production production 2050
axes[2].text(1,(contributions_EQ_2050_kerosene_typ['Airport use']+contributions_EQ_2050_kerosene_typ['Aircraft production']+contributions_EQ_2050_kerosene_typ['Combustion']+contributions_EQ_2050_kerosene_typ['Kerosene production']+contributions_EQ_2050_kerosene_typ['Electricity production']+(contributions_EQ_2050_kerosene_typ['Hydrogen production']/2)).values[1], f"{percentages_EQ_2050_kerosene_typ['Hydrogen production %'].values[1]:0.1f}%", ha="center", va="center",fontsize='11')
#Hydrogen production production 2040
axes[2].text(2,(contributions_EQ_2050_kerosene_typ['Airport use']+contributions_EQ_2050_kerosene_typ['Aircraft production']+contributions_EQ_2050_kerosene_typ['Combustion']+contributions_EQ_2050_kerosene_typ['Kerosene production']+contributions_EQ_2050_kerosene_typ['Electricity production']+(contributions_EQ_2050_kerosene_typ['Hydrogen production']/2)).values[2], f"{percentages_EQ_2050_kerosene_typ['Hydrogen production %'].values[2]:0.1f}%", ha="center", va="center",fontsize='11')
plt.legend(bbox_to_anchor=(0.45, -0.25), ncol=3,frameon=False)
plt.savefig("F4A_contribution_stages_deterministic_NDC_EQ.svg", format='svg',bbox_inches='tight')
only for the typical mission endpoints, without consideration for alternative aviation fuels
endpoints_ST_typical=endpoints_ST[endpoints_ST['Mission']=='Typical']
endpoints_ST_typical_h2_kero=endpoints_ST_typical[(endpoints_ST_typical["Fuel"] != "AAF") & (endpoints_ST_typical["Fuel"] != "ILUC")]
g=sns.catplot(endpoints_ST_typical_h2_kero,x='Configuration',y='Value',row='Damage',col='Year',hue='Scenario',sharey='row',margin_titles=True, sharex=False,kind='box', units='Unit', height=3.5, aspect=1)
sns.move_legend(g, "lower center",bbox_to_anchor=(.5, -0.04), ncol=4,frameon=False)
g.axes[0,0].set_ylabel("Ecosystem Quality [PDF*m2*year/FU]")
g.axes[1,0].set_ylabel("Human Health [DALY/FU]")
g.axes[0,0].set_title("2030")
g.axes[0,1].set_title("2040")
g.axes[0,2].set_title("2050")
g.axes[1,0].set_xlabel('')
g.axes[1,1].set_xlabel('')
g.axes[1,2].set_xlabel('')
#some outliers are excluded due to visibility considerations, the same figure with all outliers is presented in the supporting word file. To obtain that figure with all outliers the next two lines need to be outcommented.
g.axes[0,0].set_ylim(0, 1200)
g.axes[1,0].set_ylim(0, 0.007)
g.axes[1,0].yaxis.set_major_formatter(lambda x, pos: "{:.0E}".format(x))
for i, ax in enumerate(g.axes.flat):
plt.setp(ax.texts, text='')
plt.savefig("F5_boxplot_endpoint_scenarios_noAAF.svg", format='svg',bbox_inches='tight')
#plt.savefig("SI_F5_boxplot_endpoint_scenarios_noAAF.svg", format='svg',bbox_inches='tight')
Comparison of kerosene, AAF and AAF+ILUC use as fuels. Only for the endpoint, typical mission and the baseline scenario.
endpoints_NDC=endpoints_ST[endpoints_ST['Scenario']=='NDC']
endpoints_NDC_typical=endpoints_NDC[endpoints_NDC['Mission']=='Typical']
endpoints_NDC_typical=endpoints_NDC_typical.replace(['H2'],'Hydrogen')
endpoints_NDC_typical=endpoints_NDC_typical.replace(['ILUC'],'AAF+ILUC')
g=sns.catplot(endpoints_NDC_typical,x='Configuration',y='Value',row='Damage',col='Year',hue='Fuel',sharey='row',margin_titles=True, sharex=False,kind='box', units='Unit', height=3.5, aspect=1,dodge=True)
sns.move_legend(g, "lower center",bbox_to_anchor=(.5, -0.04), ncol=4,frameon=False)
g.axes[0,0].set_ylabel("Ecosystem Quality [PDF*m2*year/FU]")
g.axes[1,0].set_ylabel("Human Health [DALY/FU]")
g.axes[0,0].set_title("2030")
g.axes[0,1].set_title("2040")
g.axes[0,2].set_title("2050")
g.axes[1,0].set_xlabel('')
g.axes[1,1].set_xlabel('')
g.axes[1,2].set_xlabel('')
#some outliers are excluded due to visibility considerations, the same figure with all outliers is presented in the supporting word file. To obtain that figure with all outliers the next two lines need to be outcommented.
g.axes[0,0].set_ylim(0, 1500)
g.axes[1,0].set_ylim(0, 0.007)
g.axes[1,0].yaxis.set_major_formatter(lambda x, pos: "{:.0E}".format(x))
for i, ax in enumerate(g.axes.flat):
plt.setp(ax.texts, text='')
plt.savefig("F6_boxplot_endpoint_NDC_AAFs.svg", format='svg',bbox_inches='tight')
#plt.savefig("SI_F6_boxplot_endpoint_NDC_AAFs.svg", format='svg',bbox_inches='tight')
Only for the endpoint baseline scenario with no consideration for alternative aviation fuels
endpoints_NDC=endpoints_ST[endpoints_ST['Scenario']=='NDC']
endpoints_NDC_kero_h2=endpoints_NDC[(endpoints_NDC["Fuel"] != "AAF") & (endpoints_NDC["Fuel"] != "ILUC")]
g=sns.catplot(endpoints_NDC_kero_h2,x='Mission',y='Value',row='Damage',col='Year',hue='Configuration',sharey='row',margin_titles=True, sharex=False,kind='box', units='Unit', height=3.5, aspect=1.1)
sns.move_legend(g, "lower center",bbox_to_anchor=(.5, -0.08), ncol=4,frameon=False)
g.axes[0,0].set_ylabel("Ecosystem Quality [PDF*m2*year]")
g.axes[1,0].set_ylabel("Human Health [DALY]")
g.axes[1,0].set_xlabel('')
g.axes[1,1].set_xlabel('')
g.axes[1,2].set_xlabel('')
g.axes[0,0].set_title("2030")
g.axes[0,1].set_title("2040")
g.axes[0,2].set_title("2050")
#zooming in on the y axis - outliers!
g.axes[0,0].set_ylim(0, 1600)
g.axes[1,0].set_ylim(0, 0.015)
g.axes[1,0].yaxis.set_major_formatter(lambda x, pos: "{:.0E}".format(x))
for i, ax in enumerate(g.axes.flat):
plt.setp(ax.texts, text='')
plt.savefig("SI_boxplot_endpoint_missions_NDC_noAAF.svg", format='svg',bbox_inches='tight')
Boxplots with midpoint results for the typical mission, with no consideration for alternative aviation fuels
#Midpoint for all ssp scenarios (only kerosene and h2)
MC_results_kero_h2=MC_results_Midpoint[(MC_results_Midpoint["Fuel"] != "AAF") & (MC_results_Midpoint["Fuel"] != "ILUC")]
j=sns.catplot(MC_results_kero_h2,x='Configuration',y='Value',row='Category',col='Year',hue='Scenario',sharey=False, sharex=False,kind='box',margin_titles=True, units='Unit')
sns.move_legend(j, "upper left", bbox_to_anchor=(0.92,1))
for i in range(len(units_IWP_mid)):
j.axes[i,0].set_ylabel(IWP_mid[i][1]+" ["+units_IWP_mid[i]+"]")
j.axes[0,0].set_title("2030")
j.axes[0,1].set_title("2040")
j.axes[0,2].set_title("2050")
for i, ax in enumerate(j.axes.flat):
plt.setp(ax.texts, text='')
plt.savefig("SI_boxplot_midpoint_scenarios_noAAF.svg", format='svg')
Boxplots with midpoint results for the typical mission with the baseline scenario
#Midpoint for kero, h2, AAF and ILUC in NDC
MC_results_NDC=MC_results_Midpoint[(MC_results_Midpoint["Scenario"] == "NDC") ]
j=sns.catplot(MC_results_NDC,x='Configuration',y='Value',row='Category',col='Year',hue='Fuel',sharey=False, sharex=False,kind='box',margin_titles=True, units='Unit')
sns.move_legend(j, "upper left", bbox_to_anchor=(0.92,1))
for i in range(len(units_IWP_mid)):
j.axes[i,0].set_ylabel(IWP_mid[i][1]+" ["+units_IWP_mid[i]+"]")
plt.savefig("boxplot_midpoint_NDC_AAFs.svg", format='svg')